首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否可以在gitconfig中放入--preserve-merges

是否可以在gitconfig中放入--preserve-merges
EN

Stack Overflow用户
提问于 2016-07-08 22:25:20
回答 1查看 484关注 0票数 2

我想至少设置一个存储库(如果设置是全局的,我就可以了),以便在重新建立数据库时始终保留分支。有没有办法在我的gitconfig中设置?

EN

回答 1

Stack Overflow用户

发布于 2016-07-09 08:05:37

简短的答案是“不”;中长的答案是“某种程度”;长的答案是“你可能不想那样做”。:-)

简短的答案很简单,因为git rebase实际上没有配置条目来自动设置保留合并模式。

这个“排序”的答案是因为可以将git pull配置为自动运行git rebase --preserve-merges。记住,git pull本质上只是一对git fetch && git something的命令,something部件是可配置的:mergerebase,如果是rebase,则说明要使用的标志。但这只会影响git pull运行的rebase命令,而不会影响您自己运行的命令。

长长的答案要复杂得多。虽然至少在某些方面,保留合并通常要优于在rebase时丢弃它们,但事实是rebase不能保留它们。一旦一些提交被复制到新的提交,它唯一能做的就是重新执行它们。这可能具有新的和/或不同的合并冲突,而不是上次完成合并时的冲突。您还应该密切关注the git rebase documentation中对合并保留的限制。

在不涉及太多细节的情况下,在我看来,大多数“应该”重新建立基础的提交图子集很少有任何内部合并。如果这样一个图子集只有一个最终合并,那么您只需在重新建立基址之前剥离合并(使用git reset),并在最后手动重新执行该合并。(实际上,git rebase通常会完全删除合并提交,因此在某些情况下,您不必运行git reset本身。当merge进入您想要重新建立基础的分支时,您确实需要运行它。这就是git pull在使用git rebase -p时实际上做的正确的事情,除了它没有检查和警告内部合并,这是一种警告信号,表明重新基址可能不是一个好主意。)

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38269092

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档