如何使用rebase而不是合并来拉取所有远程更改?

mic*_*ael 23 git version-control pull rebase

我可以使用git pull,但它合并我的本地提交.有没有git rebase相当于我可以进行远程更改?

Ada*_*ruk 28

是的,你可以git pull --rebase.

您还可以将其设置为跟踪分支时的默认拉动行为git config branch.autosetuprebase always.如果要对正在跟踪的特定类型的分支执行此操作,请将"always"替换为"remote"或"local".

现在你所要做的就是git pull.

如果由于某种原因你想要合并,你可以这样做git pull --no-rebase.

希望这可以帮助.

更新:请参阅下面的评论,了解如何在现有分支机构上执行此操作.

  • `branch.autosetuprebase`仅更改具有上游跟踪的*new*分支的默认拉"模式".`branch.<name> .rebase`是控制单个分支操作的变量(如果在创建分支时`branch.autosetuprebase`为真,则对新的"跟踪"分支设置为true).使用`git config branch.<name> .rebase true`为一个分支手动设置它. (7认同)
  • 你也可以在.gitconfig的[pull]部分设置"rebase = True". (3认同)

Jay*_*ine 12

相反的autosetuprebase,你可以使用pull.rebase配置选项来改变行为的每个 git pull(而不是仅向新创建的分支):

[pull]
    rebase = true
Run Code Online (Sandbox Code Playgroud)

区别在于这将适用于非跟踪分支以及您在启用之前设置的任何分支autosetuprebase.所以如果你真的想pull --rebase永远是默认的,那pull.rebase就是要走的路!


kar*_*lip 6

我通常使用 fetch/rebase 组合,所以我当前的(本地)工作保持在顶部:

git fetch
git rebase origin/develop
Run Code Online (Sandbox Code Playgroud)