Git Merge Origin/Master와 Git Pull의 차이점
이 기사에서는 git merge origin/master
와 git pull
명령의 차이점에 대해 설명합니다. 두 명령은 원격 저장소의 변경 사항을 현재 로컬 분기에 통합합니다.
그러나 곧 설명하겠지만 각 명령은 고유하게 작동하며 사용 사례가 다릅니다. Git을 처음 사용하고 두 명령으로 어려움을 겪고 있는 경우 여기가 적합합니다.
git merge origin/master
와 git pull
의 차이점
주요 차이점을 도출하기 위해 각 명령을 분석하는 것으로 시작합니다. git pull
명령부터 시작하겠습니다.
git pull
명령
Git 설명서에 따르면 기본적으로 git pull
명령은 두 명령의 조합입니다.
git fetch
명령git merge Fetch_Head
명령
git push
명령은 원격 저장소에서 변경 사항을 가져오고 git merge
명령을 호출하여 Fetch_Head
를 체크아웃된 로컬 분기에 병합합니다.
간단히 말해서 Fetch_Head
는 가져온 항목을 추적하는 참조입니다. 모든 원격 분기 끝에 커밋을 저장합니다.
git pull
명령을 사용하려면 로컬 분기에 원격 추적 분기가 있어야 합니다. 원격 추적 브랜치는 로컬 브랜치가 변경 사항을 가져오고 푸시하는 원격 저장소의 브랜치입니다.
로컬 브랜치에 대한 원격 추적 브랜치를 설정하지 않은 경우 git pull
명령 자체가 실패합니다. 이러한 상황에서는 원격 분기를 지정해야 합니다.
git merge origin/master
명령
git merge origin/master
는 원격 master
브랜치에서 현재 브랜치로의 변경 사항을 통합합니다. 그 자체로 git merge origin/master
명령은 로컬 브랜치에 영향을 주지 않습니다.
로컬 저장소는 원격 저장소의 변경 사항을 인식하지 못하므로 먼저 git fetch
명령을 실행해야 합니다.
git fetch
명령과 함께 git merge origin/master
명령은 git pull
명령처럼 작동합니다. 그러나 원격 추적 분기가 필요하지 않습니다.
다음과 같은 가상 시나리오를 생각해 보십시오.
저장소에는 master
분기가 있습니다. 우리는 development
분기를 생성하여 편집하고 master
에 병합하고 원격 저장소로 푸시합니다.
동일한 프로젝트에서 작업하는 다른 개발자는 동일한 워크플로를 따릅니다.
원격 master
분기에 새로운 변경 사항이 있으며 master
분기를 업데이트하지 않고 development
분기에 직접 변경 사항을 가져오고 싶습니다. 어떻게 해야 할까요?
로컬 development
분기에는 원격 추적 분기가 없기 때문에 git pull
명령이 작동하지 않습니다.
원격 저장소에서 변경 사항을 가져와 development
브랜치에 직접 병합해야 합니다. 여기에서 git merge origin/master
명령이 사용됩니다.
원격에서 가져오려면 다음을 실행합니다.
$ git fetch
이것은 변경 사항을 다운로드하기만 하고 아무것도 업데이트하지 않는다는 점에 유의하십시오. 변경 사항을 development
브랜치에 병합하기 위해 다음을 실행합니다.
$ git merge origin/master
반면에 로컬 master
브랜치에서 체크아웃했다면 git pull
명령이 작동하여 master
브랜치를 업데이트했을 것입니다.
분기에 원격 추적 분기가 있는 경우 git pull
명령을 사용하여 변경 사항을 로컬 분기에 통합합니다. 반면 git merge origin/master
명령은 원격 master
브랜치에서 현재 로컬 브랜치로 변경 사항을 통합합니다.
명령을 호출하기 전에 원격 저장소에서 가져와야 합니다.
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn