`--preserve-merges`的Git选项是什么?

12

是否有一种选项可以让Git默认使用--preserve-merges执行rebase操作?我知道有别名的方法,但是我不喜欢记住它们的名称,而且当你习惯于使用别名时,在其他人的电脑上进行操作会使一切变得更加困难。


你使用的 Git 版本是什么? - VonC
目前最新版本为2.12.1。 - Denys Mikhalenko
2个回答

2
如果您想在拉取(比如,develop)时执行此操作,您可以在git版本>= 1.7.9中完成:
git config pull.rebase preserve

它将使您所有的拉取操作从远程重置分支到本地,并保留合并。

如果您想将develop重新定位到另一个分支,则无法使用此方法。

在git < 1.7.9中:

git config --global branch.autosetuprebase always

参见如何使git pull --rebase保留合并提交


1
这种个人需求是Shell函数存在的原因之一。
git() {
    case $1 in
    rebase) shift; set -- rebase --preserve-merges "$@" ;;
    esac
    command git "$@"
}

关于

我知道别名,但我不喜欢记住它们的名称,而且当你习惯了它们时,在别人的计算机上执行操作会变得更加困难。

我认为如果想让一个命令在别人的计算机上表现不同,但只有在你使用它时才需要询问一个单独的问题以获得适当的回答。


抱歉,但我的问题明确说明我需要一个git选项而不是其他实现此功能的方法。这就是为什么我提到了别名-以免收到像这样的答案。 - Denys Mikhalenko
你给出了两个要求的原因。第一个已经满足(git rebase按照你想要的方式工作,不会引入新名称)。我怀疑第二个可能措辞不当,请问您能否更清楚地说明当您在“别人的电脑”上时,您希望 git 如何为您个人行为提供不同的行为方式? - jthill
我不使用git别名(并解释了原因),并要求一个git选项。 我不需要变通方法,只需要一个git选项(如果存在的话)。 - Denys Mikhalenko
3
不行。也许应该这样做,但我怀疑我们都不太关心这个功能到足够的程度来为 git 制作补丁,所以不幸的是你的选择只能是别名(shell 或 git)或者完全不使用。 - Daniel H

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接