2017-02-12 186 views
2

git pull,git fetchgit rebase之间有什么区别?我觉得拉和取都一样。git pull,git fetch和git rebase有什么区别?

+1

http://stackoverflow.com/questions/292357/difference-between-git-pull-and-git-fetch – jophab

+1

我建议你阅读[临的Git(https://git-scm.com /电子书/ EN/V2)。前三章涵盖了你每天需要的95%,包括你的问题的答案。 –

+0

'git pull --rebase'相当于后两个 – Pockets

回答

2

取:更新当地远程变化不与任何本地分行合并

拉:更新当地合并当前分支的变化。

  • git fetch:从产地获取最新的变化(不合并)

  • git pull = git fetch + git merge

  • 如果衍合feature分支到master分支。 git rebase master,它会保持feature分支commits/changes顶部。

    说你有master分支两次提交(A - >C)和feature分支(B - >D)两次提交。

    假设你在feature分支(git checkout feature)。现在,如果你merge master然后提交历史:

    (previous commit) - A -- C  <- master 
            \  \ 
            B -- D -- M <- feature 
    

    这里,Mnew-merge-commit-sha

    对于rebase master,提交历史记录:(ACB'D')。

+1

通常情况下,您会将'feature'重定位到'master',而不是相反。 –

+1

并且'git merge master'会导致比您所发现的更复杂的提交历史记录。 –

+0

同意@代码学徒,这里我试图展示'简单/通用'的区别。 –

相关问题