Git 如何使用rebase而不是merge提取所有远程更改?

Git 如何使用rebase而不是merge提取所有远程更改?,git,version-control,rebase,pull,Git,Version Control,Rebase,Pull,我可以使用git pull提取更改,但它会合并我的本地提交。是否有一个与之相当的git-rebase可以用于远程更改?我通常使用fetch/rebase组合,以便我当前(本地)的工作保持在顶部: git fetch git rebase origin/develop 是的,您可以git pull--rebase 当您使用git config branch.autosetuprebase always跟踪分支时,也可以将其设置为默认的拉行为。如果要对正在跟踪的特定类型的分支执行此操作,请将“始终

我可以使用
git pull
提取更改,但它会合并我的本地提交。是否有一个与之相当的
git-rebase
可以用于远程更改?

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

git fetch
git rebase origin/develop

是的,您可以
git pull--rebase

当您使用
git config branch.autosetuprebase always
跟踪分支时,也可以将其设置为默认的拉行为。如果要对正在跟踪的特定类型的分支执行此操作,请将“始终”替换为“远程”或“本地”

现在您所要做的就是
git pull

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

希望这有帮助


更新:有关如何在现有分支上执行此操作,请参见下面的注释。

您可以使用
pull.rebase
config选项来更改每个
git pull
的行为,而不是只更改新创建的分支:


不同之处在于,这将适用于非跟踪分支以及在启用
autosetuprebase
之前设置的任何分支。因此,如果您真的希望
pull--rebase
始终是默认值,那么
pull.rebase
就是一个不错的选择

将git>=1.7.9中的默认行为从
merge
更改为
rebase

git config--global pull.rebase true


如果您只想申请当前回购分支机构,请删除全局。autosetuprebase仅更改具有上游跟踪功能的新分支机构的默认拉动“模式”
branch..rebase
是控制单个分支操作的变量(如果
branch,则对于新的“跟踪”分支将其设置为true。创建分支时,autosetuprebase
为true)。使用
git config branch..rebase true
为单个分支手动设置它。正确。我忘了提到现有的跟踪分支。如果您知道自己在做什么,也可以手动编辑配置。要编辑配置文件,请找到分支的部分并添加:rebase=True还可以添加一个--global标志将其应用于全局git配置,而不仅仅是存储库:git config--global branch.autosetuprebase always您还可以在[pull]中设置“rebase=True”你的.gitconfig.Related:.@Bohdan-true…很久以前我就放弃了每天都使用的Ortoisegit,如果你想用git做任何棘手的事情,你最终还是要转到命令行。谢谢,这是个好主意!
[pull]
    rebase = true