Git 合并 - 拉取和合并之间的区别



在我的.gitconfig中,我rebase设置为默认拉选项。我试图了解两者之间的区别

git merge origin/develop

与。

git pull origin develop

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

谢谢

git pull 使用给定参数运行 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

为了了解更多信息,请查看此文档 拉取和合并

这里的根本区别在于变基的工作方式和合并工作方式之间的差异。

变基将倒退到分支之间的共享点,它将在头顶上逐个重播提交。(不引入和新的合并提交(

合并将获取分支的一次性总和并将其合并到顶部,产生 1 个新的合并提交,其中包含整个好东西。

变基是"更好的",因为它以更干净的方式保留了历史。

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

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

最新更新