git remote로 원격을 연결하고 push, pull, fetch와 추적 브랜치로 GitHub에 코드를 올린다.
원격 저장소
지금까지는 내 컴퓨터(로컬)에서만 작업했습니다. 이제 GitHub 같은 원격 저장소(remote) 와 연결해 코드를 백업하고 협업해 봅니다. 로컬과 원격이 어떻게 주고받는지 익힙니다.
학습 목표
git remote로 원격 저장소를 연결·확인한다.git push,git pull,git fetch의 차이를 안다.- 추적 브랜치(upstream)의 개념을 이해한다.
- 로컬 저장소를 GitHub에 올린다.
원격 연결: git remote
원격 저장소는 별칭으로 가리킵니다. 관례상 주 원격의 이름은 origin입니다.
git remote -v # 연결된 원격 목록 확인
git remote add origin https://github.com/user/project.git # 원격 추가
git remote remove origin # 원격 제거
git clone으로 받은 저장소는 origin이 이미 연결돼 있습니다.
올리기: git push
로컬 커밋을 원격으로 보냅니다.
git push origin main # 로컬 main 을 origin 의 main 으로
처음 푸시하는 브랜치라면 -u(--set-upstream)로 추적 관계를 한 번 설정해 둡니다.
git push -u origin main
추적 브랜치(upstream)
-u로 한 번 연결해 두면 로컬 브랜치가 원격 브랜치를 추적(track) 합니다. 그 뒤로는 인자 없이 짧게 쓸 수 있습니다.
git push # 추적 중인 원격 브랜치로 자동 push
git pull # 추적 중인 원격 브랜치에서 자동 pull
추적 상태와 로컬·원격의 커밋 차이는 git status나 다음으로 확인합니다.
git branch -vv # 각 로컬 브랜치가 어떤 원격을 추적하는지
가져오기: fetch vs pull
원격의 변경을 내려받는 데는 두 가지가 있습니다.
git fetch— 원격의 변경을 가져오기만 한다. 내 작업 파일은 건드리지 않는다. 먼저 확인하고 싶을 때.git pull—fetch+merge. 가져온 변경을 현재 브랜치에 바로 합친다.
git fetch origin # 원격 변경만 가져와 확인
git log origin/main # 원격이 어디까지 갔는지 본 뒤
git merge origin/main # 직접 합치기
git pull origin main # 위 과정을 한 번에 (fetch + merge)
협업 중에는 push 전에 git pull로 원격의 최신 변경을 먼저 합치는 습관이 좋습니다. 그렇지 않으면 push가 거부될 수 있습니다.
로컬 저장소를 GitHub에 올리기
이미 로컬에서 작업하던 프로젝트를 GitHub에 처음 올리는 전형적인 순서입니다. (GitHub에서 빈 저장소를 먼저 만들어 둡니다.)
git init # (아직 안 했다면) 저장소 초기화
git add .
git commit -m "최초 커밋"
git branch -M main # 기본 브랜치 이름을 main 으로
git remote add origin https://github.com/user/project.git
git push -u origin main # 첫 push (추적 설정 포함)
이후부터는 git add → git commit → git push 의 반복입니다.
요약
git remote로 원격(origin)을 연결하고, git push로 올리고 git pull로 내려받습니다. fetch는 가져오기만, pull은 가져와 합치기까지 합니다. -u로 추적 브랜치를 설정하면 이후 명령이 간단해집니다. 다음 강좌에서는 잘못한 작업을 되돌리는 방법을 배웁니다.
댓글 0
“Git & GitHub” 강좌에 대한 댓글입니다.