Git Merge - 拉取和合并的区别
Git Merge - Difference between pull and merge
在我的 .gitconfig
中,我将 rebase
设置为默认拉取选项。我想了解
之间有什么区别
git merge origin/develop
对比
git pull origin develop
我目前的理解是 git pull origin develop
将分支 develop
从 origin
(远程)拉到当前分支。但 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
在我的 .gitconfig
中,我将 rebase
设置为默认拉取选项。我想了解
git merge origin/develop
对比
git pull origin develop
我目前的理解是 git pull origin develop
将分支 develop
从 origin
(远程)拉到当前分支。但 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