23

我可以使用 拉取更改git pull,但它会合并我的本地提交。有没有git rebase可以拉入远程更改的等价物?

4

4 回答 4

32

是的,你可以git pull --rebase

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

现在你所要做的就是git pull

如果由于某种原因您想要进行合并,您可以执行git pull --no-rebase.

希望这可以帮助。

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

于 2011-03-15T00:38:09.010 回答
13

而不是autosetuprebase,您可以使用pull.rebaseconfig 选项来更改每个 git pull(而不是仅新创建的分支)的行为:

[pull]
    rebase = true

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

于 2013-04-10T20:16:46.073 回答
6

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

git fetch
git rebase origin/develop
于 2011-03-14T23:59:42.903 回答
2

要将默认行为从更改mergerebaseIn git >= 1.7.9:

git config --global pull.rebase true

如果您只想申请当前回购,请删除全局

于 2017-06-21T09:49:39.880 回答