我想至少设置一个存储库(如果设置为全局的,我很好),以便在变基时始终保留分支。有办法在我的gitconfig中设置吗?
cwxwcias1#
简短的回答是“不”;中等长度的答案是“有点”;最后的答案是“你可能不想这么做”:—)答案很简单,因为git rebase实际上没有配置条目来自动设置preserve-merges模式。答案是“某种程度上”,因为git pull * 可以 * 配置为自动运行git rebase --preserve-merges。请记住,git pull本质上只是一对命令git fetch && git *something*,其中 * something * 部分是可配置的:merge或rebase,如果是rebase,则使用什么标志。但这只会影响git pull运行的rebase命令,而不会影响您自己运行的命令。详细的答案更加复杂。虽然在变基时保留合并可能比丢弃合并更上级,至少在一些方面,但事实是变基不能保留合并。一旦一些提交被复制到新的提交中,它唯一能做的就是 * 重新执行它们 *。这可能具有新的和/或不同的合并冲突,相对于上次完成合并。您还应该密切注意the git rebase documentation中对合并保留的限制。在我看来,大多数提交图子集“应该”被重新定基,很少有任何内部合并。如果这样一个图子集有一个 final merge,你可以在换基之前简单地去掉那个merge(用git reset),然后在最后手动重新做那个merge。(事实上,git rebase通常会完全丢弃合并提交,因此在某些情况下您不必运行git reset本身。你必须运行它的一个地方是当合并到你打算变基的分支中时。这就是当git pull使用git rebase -p时,它实际上做了正确的事情,除了它没有检查和警告内部合并,这是一种警告信号,表明重基可能不是一个好主意。
git rebase
git pull
git rebase --preserve-merges
git fetch && git *something*
something
merge
rebase
git reset
git rebase -p
0yycz8jy2#
配置变量rebase.rebaseMerges将包含在下一个版本的Git(2.41.0)中。它允许您始终使用--rebase-merges。
rebase.rebaseMerges
--rebase-merges
--preserve-merges
--interactive
2条答案
按热度按时间cwxwcias1#
简短的回答是“不”;中等长度的答案是“有点”;最后的答案是“你可能不想这么做”:—)
答案很简单,因为
git rebase
实际上没有配置条目来自动设置preserve-merges模式。答案是“某种程度上”,因为
git pull
* 可以 * 配置为自动运行git rebase --preserve-merges
。请记住,git pull
本质上只是一对命令git fetch && git *something*
,其中 *something
* 部分是可配置的:merge
或rebase
,如果是rebase
,则使用什么标志。但这只会影响git pull
运行的rebase命令,而不会影响您自己运行的命令。详细的答案更加复杂。虽然在变基时保留合并可能比丢弃合并更上级,至少在一些方面,但事实是变基不能保留合并。一旦一些提交被复制到新的提交中,它唯一能做的就是 * 重新执行它们 *。这可能具有新的和/或不同的合并冲突,相对于上次完成合并。您还应该密切注意the
git rebase
documentation中对合并保留的限制。在我看来,大多数提交图子集“应该”被重新定基,很少有任何内部合并。如果这样一个图子集有一个 final merge,你可以在换基之前简单地去掉那个merge(用
git reset
),然后在最后手动重新做那个merge。(事实上,git rebase
通常会完全丢弃合并提交,因此在某些情况下您不必运行git reset
本身。你必须运行它的一个地方是当合并到你打算变基的分支中时。这就是当git pull
使用git rebase -p
时,它实际上做了正确的事情,除了它没有检查和警告内部合并,这是一种警告信号,表明重基可能不是一个好主意。0yycz8jy2#
配置变量
rebase.rebaseMerges
将包含在下一个版本的Git(2.41.0)中。它允许您始终使用--rebase-merges
。历史/上下文
--preserve-merges
,同时学习--interactive
--rebase-merges
和--preserve-merges
被弃用--preserve-merges
(read:现在你得到一个致命的错误,如果你尝试使用它)rebase.rebaseMerges