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