bestsource

git pull과 git fetch + git rebase의 차이점은 무엇입니까?

bestsource 2023. 5. 14. 10:48
반응형

git pull과 git fetch + git rebase의 차이점은 무엇입니까?

다른 질문은 다음과 같습니다.git pull와 같습니다.git fetch+git merge.

하지만 무엇이 다른가요?git pull그리고.git fetch+git rebase?

당신의 질문에서 당신이 실제로 단지 사이의 차이에 대해 묻고 있다는 것은 꽤 분명해야 합니다.git merge그리고.git rebase.

따라서 일반적인 경우에 해당한다고 가정해 보겠습니다. 마스터 브랜치에서 작업을 수행한 후 오리진에서 작업을 수행한 경우도 있습니다.가져오기 후에는 다음과 같이 표시됩니다.

- o - o - o - H - A - B - C (master)
               \
                P - Q - R (origin/master)

이 시점에서 병합하면(git pull의 기본 동작) 충돌이 없다고 가정하면 다음과 같이 됩니다.

- o - o - o - H - A - B - C - X (master)
               \             /
                P - Q - R --- (origin/master)

다른 한편으로 적절한 기본 재배치를 수행했다면 다음과 같은 결과를 얻을 수 있습니다.

- o - o - o - H - P - Q - R - A' - B' - C' (master)
                          |
                          (origin/master)

작업 트리의 내용은 두 경우 모두 동일하게 끝나야 합니다. 작업 트리에 도달할 때까지 다른 기록을 작성했습니다.기본 재배치는 기록을 다시 작성하여 오리진의 새 마스터 분기 위에 커밋한 것처럼 보이게 합니다.R), 원래 사용자가 저지른 위치 대신) 대신H) 다른 사용자가 이미 마스터 분기에서 탈퇴한 경우에는 기본 재배치 방법을 사용하지 마십시오.

마지막으로, 실제로 설정할 수 있습니다.git pull지정된 분기가 config 매개 변수를 설정하여 병합하는 대신 rebase를 사용하는 경우branch.<name>.rebase사실대로다음을 사용하여 한 번 당기기에도 이 작업을 수행할 수 있습니다.git pull --rebase.

TLDR:

git pull달리는 것과 같습니다.git fetch그리고나서git merge
git pull --rebase는 것과 같은git fetch그리고나서git rebase

당신의 첫번째 진술에 대한 답변으로,

git pull와 같습니다.git fetch+git merge.

"기본 모드에서 git pull은 다음과 같은 약자입니다.git fetch다음에git mergeFETCH_HEAD" 보다 정확하게는git pull달리기git fetch지정된 매개 변수를 사용한 다음 호출합니다.git merge검색된 분기 헤드를 현재 분기에 병합하려면"

(참조: https://git-scm.com/docs/git-pull)


두 번째 진술/질문:

'하지만 다른 점이 있다면'git pullgit fetch+git rebase'

다시, 동일한 출처에서:
git pull --rebase

"--rebase를 사용하면 git merge 대신 gitbase를 실행합니다."


자, 만약 당신이 묻고 싶다면,

사이의 차이merge그리고.rebase'

여기에도 답이 있습니다.
https://git-scm.com/book/en/v2/Git-Branching-Rebasing
(버전 기록 방식 변경 간의 차이점)

언급URL : https://stackoverflow.com/questions/3357122/what-is-the-difference-between-git-pull-and-git-fetch-git-rebase

반응형