在我的.gitconfig
中,我rebase
设置为默认拉选项。我试图了解两者之间的区别
git merge origin/develop
与。
git pull origin develop
我目前所理解的只是git pull origin develop
将分支develop
从origin
(远程(拉到当前分支。但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
这类似于变基,因为它只会在保留历史记录的顶部重播提交。