我想至少设置一个存储库(如果设置是全局的,我就可以了),以便在重新建立数据库时始终保留分支。有没有办法在我的gitconfig中设置?
发布于 2016-07-09 08:05:37
简短的答案是“不”;中长的答案是“某种程度”;长的答案是“你可能不想那样做”。:-)
简短的答案很简单,因为git rebase实际上没有配置条目来自动设置保留合并模式。
这个“排序”的答案是因为可以将git pull配置为自动运行git rebase --preserve-merges。记住,git pull本质上只是一对git fetch && git something的命令,something部件是可配置的:merge或rebase,如果是rebase,则说明要使用的标志。但这只会影响git pull运行的rebase命令,而不会影响您自己运行的命令。
长长的答案要复杂得多。虽然至少在某些方面,保留合并通常要优于在rebase时丢弃它们,但事实是rebase不能保留它们。一旦一些提交被复制到新的提交,它唯一能做的就是重新执行它们。这可能具有新的和/或不同的合并冲突,而不是上次完成合并时的冲突。您还应该密切关注the git rebase documentation中对合并保留的限制。
在不涉及太多细节的情况下,在我看来,大多数“应该”重新建立基础的提交图子集很少有任何内部合并。如果这样一个图子集只有一个最终合并,那么您只需在重新建立基址之前剥离合并(使用git reset),并在最后手动重新执行该合并。(实际上,git rebase通常会完全删除合并提交,因此在某些情况下,您不必运行git reset本身。当merge进入您想要重新建立基础的分支时,您确实需要运行它。这就是git pull在使用git rebase -p时实际上做的正确的事情,除了它没有检查和警告内部合并,这是一种警告信号,表明重新基址可能不是一个好主意。)
https://stackoverflow.com/questions/38269092
复制相似问题