programing

개발 브랜치에서 git pull origin master를 수행하면 어떻게 되나요?

projobs 2021. 1. 15. 07:31
반응형

개발 브랜치에서 git pull origin master를 수행하면 어떻게 되나요?


마스터보다 2 개의 커밋이있는 develop이라는 비공개 토픽 브랜치가 있다고 가정 해 보겠습니다.

무엇을 git pull origin master합니까?

로컬의 원격 마스터에서 모든 것을 가져 와서 병합 하시겠습니까? 로컬 마스터 브랜치의 모든 것을 가져 와서 병합 하시겠습니까?

그리고 git checkout master먼저 개발에서 마스터를 업데이트하는 방법이 있습니까?


git pull origin master원격 호출 원점에서 현재 분기로 마스터 분기를 가져옵니다. 로컬 마스터 브랜치가 아닌 현재 브랜치에만 영향을 미칩니다.

다음과 같은 기록을 제공합니다.

- x - x - x - x (develop)
   \         /
    x - x - x (origin/master)

귀하의 로컬 마스터 브랜치는 이것과 관련이 없습니다. git pull본질적으로 git fetch의 조합 이며 git merge; 원격 분기를 가져온 다음 현재 분기에 병합합니다. 다른 것과 마찬가지로 병합입니다. 그것은 마법적인 일을하지 않습니다.

로컬 마스터 브랜치를 업데이트하려면 체크 아웃 할 수밖에 없습니다. 체크 아웃되지 않은 브랜치에 병합하는 것은 불가능합니다. Git은 병합을 수행하기 위해 작업 트리가 필요하기 때문입니다. (특히 병합 충돌을보고하고 해결할 수 있도록하려면 절대적으로 필요합니다.)

마스터로 가져 오는 것이 빨리 감기라는 것을 알고 있다면 (즉, 오리진의 마스터가 아닌 로컬 마스터 브랜치에 커밋이 없음) 이 답변에 설명 된대로 해결할 수 있습니다 .


일단 변경 사항을 사용하여 브랜치에 커밋하면

git add -A
git commit -m <message>

그런 다음 다음을 수행 할 수 있습니다.

git pull origin master

브랜치로 들어가면 커밋이 마스터 풀 위에 유지됩니다. 브랜치는 이제 마스터 + 커밋이 맨 위에 있습니다. 이제 다음을 수행 할 수 있습니다.

git push

git은 마스터 커밋과 함께 변경 사항을 분기에 푸시합니다. 그런 다음 Github의 마스터에 쉽게 병합 할 수 있습니다.

참조 URL : https://stackoverflow.com/questions/8746631/what-happens-when-i-do-git-pull-origin-master-in-the-develop-branch

반응형