Git Merge - 拉取和合并的区别

Git Merge - Difference between pull and merge

在我的 .gitconfig 中,我将 rebase 设置为默认拉取选项。我想了解

之间有什么区别

git merge origin/develop

对比

git pull origin develop

我目前的理解是 git pull origin develop 将分支 developorigin (远程)拉到当前分支。但 git merge origin/develop 也是如此(或者,确实如此)?

谢谢,

这里的根本区别在于 rebase 和 merge 的工作方式之间的区别。

Rebase 会回退到分支之间的共享点,并且会在头顶上一个一个地重放提交。 (不引入和新的合并提交)

Merge 将把分支的总和合并到顶部,产生 1 个新的合并提交,其中包含所有好东西。

Rebase 是 "better",因为它以更清晰的方式保留了历史记录。

您也可以尝试 git merge BRANCH --ff-only

这类似于 rebase,因为它只会在保留历史记录的基础上重播提交。

git pull runs git fetch 使用给定参数并调用 git merge 将检索到的分支头合并到当前分支中。

命令

git pull <remote> <branch>

真的和

一样
git fetch <remote>
git merge <remote>/<branch>

所以

之间没有实际区别
git pull origin master

git fetch origin
git merge origin/master

为了了解更多,请查看此文档Pull and Merge