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

Lak*_*age 6 git git-pull git-fetch

git pullgit fetch和之间有什么区别git rebase?我感觉pull和fetch是一样的。

Saj*_*han 5

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

Pull:更新本地并将更改合并到current-branch

  • git fetch:获取来自origin的最新更改(不合并)

  • git pull= git fetch+git merge

  • 如果你将feature分支变基到master分支。git rebase master,它将保持feature分支commits/changes顶部。

    master假设您在分支 ( A-> )中有两个提交,在分支 ( -> )C中有两个提交。featureBD

    假设您位于feature( git checkout feature) 分支。现在,如果您merge master提交历史记录:

    (previous commit) - A -- C       <- master
                      \        \
                        B -- D -- M   <- feature
    
    Run Code Online (Sandbox Code Playgroud)

    在这里,M对于new-merge-commit-sha.

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