GitHub 기초 & 원격 연계 실습 예시
저장소 생성·원격 연결·올리고 받기(push·pull)를 난이도별 시나리오로 따라 하는 가이드 | ← 레퍼런스 문서로 돌아가기
index.html 한 장을 가지고 있다. 아직 터미널이나 로컬 git은 익숙하지 않아, 브라우저만으로 첫 GitHub 저장소를 만들고 그 파일을 올려 보려 한다. 끝으로 저장소 홈에 보이는 README도 마크다운으로 손봐서 프로젝트 설명을 채우고 싶다.
-
원격 저장소 만들기
우상단
+→ New repository를 누른다. 이름을 정하고 Public을 고른 뒤, Add a README file을 체크해 빈 저장소가 아니라 README가 있는 상태로 시작한다.# 웹 화면에서 입력하는 값(명령이 아니라 UI 입력 예시) Repository name : my-first-site Visibility : Public Initialize : [v] Add a README file
-
파일 업로드
저장소 화면에서 Add file → Upload files로 들어가, 가지고 있는
index.html을 드래그앤드롭한 뒤 아래 커밋 메시지를 적고 Commit changes를 누른다.# 커밋 메시지 예시 Add index.html
-
README 편집
저장소 홈의
README.md우측 연필 아이콘을 눌러 편집 모드로 들어가, 마크다운으로 프로젝트 설명을 채우고 커밋한다.# My First Site AI가 만들어 준 한 장짜리 정적 페이지입니다. - 파일: `index.html` - [프로젝트 보기](index.html)
git add + git commit을 한 것과 같은 결과를 GitHub 원격에 남긴다. 그래서 로컬 git이 없어도 이력이 차곡차곡 쌓이고, 나중에 git clone으로 이 저장소를 통째로 내 PC에 받아 올 수 있다.
.github·루트·docs 중 한 곳(여기서는 루트)에 있어야 저장소 홈에 자동으로 표시된다. 다른 폴더에 두면 홈에 나타나지 않으니 위치를 그대로 둔다.
gh CLI는 설치돼 있고, 작업은 그 프로젝트 폴더 안에서 진행한다고 가정한다.
-
gh 인증
처음 한 번은 GitHub CLI를 내 계정과 연결해야 한다. 브라우저 방식으로 로그인한다. 이미 인증돼 있으면 이 단계는 건너뛴다.
gh auth login --web
-
로컬 저장소 초기화·커밋
프로젝트 폴더로 이동해 git 저장소로 만들고, 현재 파일을 모두 담아 첫 커밋을 만든다. (아래
cd경로는 실제 폴더로 바꾼다.)cd my-ai-project git init git add . git commit -m "Initial commit"
-
원격 생성 + 연결 + push 한 번에
현재 폴더(
--source=.)를 가리키는 비공개 원격 저장소를 만들고,origin으로 연결한 뒤 곧바로 push까지 한 명령으로 처리한다.gh repo create my-ai-project --private --source=. --remote=origin --push
origin이라는 이름의 remote로 추가하고, ③ 방금 만든 로컬 커밋을 원격으로 push한다. 그래서 git remote add origin·git push -u를 따로 입력하지 않아도 연결과 업로드가 자동으로 끝난다. 이후 코드를 고쳐 커밋한 뒤에는 git push만으로 원격에 반영된다.
.env 파일이 섞여 있기 쉽다. git add . 전에 .gitignore로 비밀 파일을 제외했는지 반드시 확인한다. 비공개 저장소라도 한 번 커밋된 비밀키는 이력에 남으므로 처음부터 올리지 않는 것이 안전하다.
myuser/forked-repo). 이 포크를 로컬로 가져와 AI 수정의 바탕으로 삼고, 동시에 떠오른 아이디어를 시험할 깨끗한 실험 저장소도 라이선스·.gitignore까지 갖춰 새로 만들려 한다. gh 인증은 끝나 있다고 가정한다.
-
포크 클론
내 포크를 단축 형식으로 클론한다. 포크를 클론하면 원본(부모) 저장소가
upstream이라는 이름으로 자동 추가된다.gh repo clone myuser/forked-repo
-
원격 구성 확인 + 원본 최신 받기
클론한 폴더로 들어가 remote 목록을 확인한다. 내 포크가
origin, 원본이upstream으로 잡혀 있어야 한다.fetch로 원본의 최신 커밋만 받아 두면 합치기 전에 무엇이 바뀌었는지 안전하게 볼 수 있다.cd forked-repo git remote -v # origin=내 포크, upstream=원본 git fetch upstream # 원본 최신을 받아만 둠(합치지 않음)
-
실험용 저장소 생성
별도의 빈 실험 저장소를 MIT 라이선스·Python용
.gitignore·README를 갖춰 만들고 곧바로 로컬에 클론한다.gh repo create my-experiment --public --license=mit --gitignore=Python --add-readme --clone
origin은 내 포크(내가 push하는 곳), upstream은 원본(최신 변경을 가져올 곳)이다. git fetch upstream은 원본 변경을 받아만 두므로, 합칠 준비가 되면 git merge upstream/main으로 내 작업에 반영한다. 한편 마지막 명령의 --license·--gitignore·--add-readme는 GitHub 서버에서 해당 템플릿을 채워 저장소를 생성한 뒤, --clone으로 그 결과를 로컬에 내려받는다.
--gitignore·--license에 넣는 템플릿명(예: Python, mit)은 GitHub가 제공하는 목록을 따른다. 이름이 맞지 않으면 생성이 거부되므로, 확실치 않을 때는 인자 없이 gh repo create를 실행해 대화형으로 목록에서 고르는 편이 안전하다.
GitHub 웹/CLI · gh 2.x 기준 | 2026년 6월 16일 작성
← GitHub 기초 & 원격 연계 매뉴얼