git-pull-rebase、git-rebase和git-merge之间的区别
任何人都可以在考虑远程存储库的情况下解释这一点吗?git-pull-rebase、git-rebase和git-merge之间的区别,git,git-svn,Git,Git Svn,任何人都可以在考虑远程存储库的情况下解释这一点吗?git-rebase允许您从分支点分离分支,并将其重新插入另一个分支的顶部git merge只是简单地合并当前分支中另一个分支的更改,而无需重新插入历史记录 如果没有冲突,则合并和重基之间的结果相同,但历史记录不同: (merge branch on master): master --A--B--C--E / branch --D (rebase branch onto maste
git-rebase
允许您从分支点分离分支,并将其重新插入另一个分支的顶部git merge
只是简单地合并当前分支中另一个分支的更改,而无需重新插入历史记录
如果没有冲突,则合并和重基之间的结果相同,但历史记录不同:
(merge branch on master):
master --A--B--C--E
/
branch --D
(rebase branch onto master):
master --A--B--C--D'
在第一种情况下,合并创建分支
分支合并到主
,从而创建合并提交,E
。在第二种情况下,D
只需重新插入master
,创建另一个提交,D'
git pull--rebase
将从远程设备获取更改,并在远程设备上重新设置更改的基础(重新插入)。它将逐字记录您所做的远程更改,并从它刚刚获取的最后一个更改开始重放这些更改。git pull——当您希望更新开发分支时,rebase
是一种方法——这些分支通常不会发布给其他人(可能只是为了查看一下)所以重写历史不是问题,你真的不想在这样一个分支中进行合并等
git merge
执行合并;请参阅手册页了解详细信息-comand有大量选项,此处无法解释
git-rebase
执行一个rebase,即重写历史。它将使您的提交达到与另一个分支不同的程度,暂时删除它们,应用另一个分支缺少的提交,然后重新应用您的提交git-rebase
还有一种交互模式,您可以在其中删除/修改/组合(挤压)某些提交
看看一些关于rebase如何工作的漂亮图表。没有git提交--rebase;你是说git pull--rebase?或者,
git-svn-dcommit——没有重新基址
?(起初错过了git svn标记)感谢您指出错误。。我已经更新了问题!注意:git 2.8(2016年3月)将允许使用git pull--rebase=interactive命令。看见