Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“--preserve merges”的Git选项?_Git_Git Merge - Fatal编程技术网

“--preserve merges”的Git选项?

“--preserve merges”的Git选项?,git,git-merge,Git,Git Merge,是否有一个选项可以使git在默认情况下使用--preserve merges进行重新基础?我知道别名,但我不喜欢记住它们的名字,而且当你习惯了它们时,在别人的计算机上做任何事情都会变得困难。这种特殊的需要是shell函数存在的原因之一 git() { case $1 in rebase) shift; set -- rebase --preserve-merges "$@" ;; esac command git "$@" } 至于 我知道别名,但我不喜欢记住它

是否有一个选项可以使git在默认情况下使用
--preserve merges
进行重新基础?我知道别名,但我不喜欢记住它们的名字,而且当你习惯了它们时,在别人的计算机上做任何事情都会变得困难。

这种特殊的需要是shell函数存在的原因之一

git() {
    case $1 in
    rebase) shift; set -- rebase --preserve-merges "$@" ;;
    esac
    command git "$@"
}
至于

我知道别名,但我不喜欢记住它们的名字,而且当你习惯了它们时,在别人的电脑上做任何事情都很困难


我认为,只有在您使用命令时,才能在其他人的计算机上以不同方式执行命令的方法才能作为一个单独的问题得到正确的响应。

如果您想在拉动(例如,开发)时执行此操作,可以在git>=1.7.9::

git config pull.rebase preserve
它将使您的所有拉操作从远程分支重新基址到本地分支,并保留合并

如果您想将develope重新设置为另一个分支,那么它将不起作用

在git<1.7.9中:

git config --global branch.autosetuprebase always

请参见

您使用的是什么版本的Git?抱歉,目前最新版本为2.12.1,但我的问题明确指出,我需要Git选项,而不是任何其他方式来实现此功能。这就是为什么我提到了别名——不要收到像这样的答案。你给出了两个理由。这满足了第一个条件(
git-rebase
将根据您的需要工作,它不会引入新名称)。我怀疑第二个可能用词有误,你能更清楚地说明当你在“其他人的电脑”上时,你希望git对你个人的行为有什么不同吗?我不使用git别名(并解释了原因)并要求使用git选项。我不需要解决方法,我只需要一个git选项,如果它存在的话。它没有。也许应该这样做,但我怀疑我们中的任何一方是否足够关心这一特性,以至于无法为
git
制作补丁,所以不幸的是,您的选项是别名(shell或git)或完全不使用。