【发布时间】:2011-03-14 23:54:37
【问题描述】:
我可以使用git pull 拉取更改,但它会合并我的本地提交。是否有 git rebase 等效项,我可以使用它进行远程更改?
【问题讨论】:
标签: git version-control rebase pull
我可以使用git pull 拉取更改,但它会合并我的本地提交。是否有 git rebase 等效项,我可以使用它进行远程更改?
【问题讨论】:
标签: git version-control rebase pull
是的,你可以git pull --rebase。
您还可以将其设置为使用git config branch.autosetuprebase always 跟踪分支时的默认拉取行为。如果您想对您正在跟踪的特定类型的分支执行此操作,请将“always”替换为“remote”或“local”。
现在你所要做的就是git pull。
如果您出于某种原因想要进行合并,可以使用git pull --no-rebase。
希望这会有所帮助。
更新:请参阅下面的 cmets,了解如何在现有分支上执行此操作。
【讨论】:
branch.autosetuprebase 仅更改具有要跟踪上游的 new 分支的默认拉取“模式”。 branch.<name>.rebase 是控制单个分支操作的变量(如果在创建分支时branch.autosetuprebase 为真,则为新的“跟踪”分支设置为真)。使用git config branch.<name>.rebase true为单个分支手动设置。
除了autosetuprebase,您可以使用pull.rebase 配置选项来更改每个 git pull 的行为(而不仅仅是新创建的分支):
[pull]
rebase = true
不同之处在于这将适用于非跟踪分支以及您在启用autosetuprebase 之前设置的任何分支。因此,如果您真的希望 pull --rebase 始终是默认设置,pull.rebase 是您的最佳选择!
【讨论】:
我通常使用 fetch/rebase 组合,因此我当前的(本地)工作保持在顶部:
git fetch
git rebase origin/develop
【讨论】:
将默认行为从 merge 更改为 rebase 在 git >= 1.7.9 中:
git config --global pull.rebase true
如果你只想申请当前回购,请删除全局
【讨论】: