git pull、git fetch和git rebase有什么区别?

what is the difference between git pull , git fetch and git rebase?

本问题已经有最佳答案,请猛点这里访问。

git pullgit fetchgit rebase有什么区别?我觉得拉和取是一样的。


获取:使用远程更改更新本地,但不与任何本地分支合并。

拉:更新本地并将更改与当前分支合并。

  • git fetch:从源站获取最新更改(不合并)

  • git pull=git fetch+git merge

  • 如果您将feature分支重新设置为master分支。git rebase master保持featurecommits/changes顶。

    假设你在master分公司(A->C有两个承诺,在feature分公司(B->D有两个承诺)。

    假设您在feature分公司(git checkout feature)。现在,如果您要执行cx1(17),那么提交历史记录:

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

    这里,M代表new-merge-commit-sha

    对于rebase master,提交历史:(A->C->B'->D'