git pull --rebase: 通过 --rebase-merges

git pull --rebase: passing --rebase-merges

这是我在重新设置当前分支的基础同时防止本地分支变平时通常做的事情:

git fetch origin
git rebase -r origin/develop

-r--rebase-merges,我更喜欢 --preserve-merges

我的问题是:在做 git pull --rebase 时有没有办法传递这个?

例如 - 我想 运行 相当于上面的命令:

git pull --rebase=rebasemerges origin develop

而不是:

git pull --rebase=preserve origin develop

**编辑:好的 - 看起来像在 2.22 中,--preserve-merges 被弃用,取而代之的是 --rebase-merges。不过,这是针对 git rebase 的 - 祈祷更改会转移到 git pull --rebase

是的,正如我在“What exactly does git's “rebase --preserve-merges” do (and why?)”中解释的那样,旧的 --preserve-merges 选项将消失。

是的,git pull -r option 将相应更新,但尚未实施。
patch in preparation here.

git 2.22 已发布。

回答我自己的问题 - 这是等效的命令:

git pull --rebase=merges origin develop

摘自the manual page:

-r --rebase[=false|true|merges|preserve|interactive] When true, rebase the current branch on top of the upstream branch after fetching. If there is a remote-tracking branch corresponding to the upstream branch and the upstream branch was rebased since last fetched, the rebase uses that information to avoid rebasing non-local changes.

When set to merges, rebase using git rebase --rebase-merges so that the local merge commits are included in the rebase (see git-rebase1 for details).

要使其成为默认拉取行为:

git config --global pull.rebase merges