dev.syw

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 pullfetch + 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 addgit commitgit push 의 반복입니다.

요약

git remote로 원격(origin)을 연결하고, git push로 올리고 git pull로 내려받습니다. fetch는 가져오기만, pull은 가져와 합치기까지 합니다. -u로 추적 브랜치를 설정하면 이후 명령이 간단해집니다. 다음 강좌에서는 잘못한 작업을 되돌리는 방법을 배웁니다.

함께 보면 좋은 자료

📚 레퍼런스

댓글 0

Git & GitHub강좌에 대한 댓글입니다.

댓글을 작성하려면 로그인이 필요합니다.