Git Pull
마지막 업데이트
git pull은 현재 브랜치를 해당 원격의 최신 커밋으로 업데이트합니다. 내부적으로 변경 사항을 내려받기 위해 git fetch를 실행한 다음, 이를 통합하기 위해 git merge를 실행합니다. 즉 git pull = git fetch + git merge입니다. 병합 커밋을 만드는 대신 로컬 커밋을 위에 다시 적용하려면 --rebase를 추가하세요.
이것들을 터미널 플레이그라운드에서 사용해 보세요. 브라우저 안의 진짜 셸이며, 설치할 것이 없습니다.
구문
| Command | What it does |
|---|---|
git pull | 현재 브랜치의 원격을 가져와 병합한다 |
git pull origin main | 원격에서 특정 브랜치를 가져온다 |
git pull --rebase | 가져온 뒤 커밋을 위에 리베이스한다 |
git pull --ff-only | fast-forward가 가능할 때만 가져온다 (병합 없음) |
git pull --no-rebase | rebase가 기본값이어도 병합을 강제한다 |
일반적인 경우
| Goal | Command |
|---|---|
| 브랜치의 최신 내용 가져오기 | git pull |
| 히스토리를 선형으로 유지하기 | git pull --rebase |
| 충돌이 발생한 pull 중단하기 | git merge --abort |
| 로컬 커밋을 버리고 원격에 맞추기 | git fetch 후 git reset --hard origin/main |
git pull 자주 묻는 질문
git pull은 실제로 무엇을 하나요?
현재 브랜치에 대해 원격에서 최신 커밋을 내려받아 로컬 브랜치에 통합합니다. 이는 두 명령의 축약형입니다.
git fetch(내려받기)에 이어 git merge(통합)입니다. 설정하면 병합 단계가 대신 리베이스가 됩니다.git pull과 git fetch의 차이는 무엇인가요?
git fetch는 원격 변경 사항만 내려받고 원격 추적 브랜치를 업데이트할 뿐, 작업 브랜치는 건드리지 않습니다. git pull은 그 fetch를 수행한 다음 변경 사항을 현재 브랜치에 병합합니다. 들어오는 변경 사항을 먼저 검토하려면 fetch를, 한 단계로 가져와 통합하려면 pull을 사용하세요.git pull --rebase는 무엇이며 언제 사용해야 하나요?
git pull --rebase는 원격 커밋을 가져온 다음, 병합 커밋을 만드는 대신 로컬 커밋을 그 위에 다시 적용합니다. 히스토리를 선형으로 유지하며, 많은 팀이 이 방식을 선호합니다. 아직 푸시하지 않은 로컬 커밋이 있고 pull할 때마다 병합 커밋이 생기는 것을 피하고 싶을 때 사용하세요.git pull 후 충돌은 어떻게 해결하나요?
로컬과 원격 변경 사항이 겹치면 pull이 병합 충돌을 일으킬 수 있습니다. 충돌된 파일을 열어 표시된 부분을 해결한 다음, 이를
git add하고 git commit(병합의 경우) 또는 git rebase --continue(리베이스 pull의 경우)를 실행하세요. 되돌리는 편이 낫다면 git merge --abort 또는 git rebase --abort를 실행하세요.이것을 온라인에서 연습할 수 있나요?
네. 터미널 플레이그라운드를 열어 브라우저 안의 진짜 셸에서
git pull을 실행하세요. 설치할 것이 없습니다. Coddy의 무료 대화형 Git 강의도 원격 작업을 단계별로 다룹니다.