[英]git: how do I configure tracking a branch by merging and not by rebasing?
我想设置一个本地跟踪分支,它将通过合并而不是通过变基来跟踪一个远程分支。
当我执行git pull
我想从远程分支合并,而不是重新设置基准。
当我做:
git checkout -b someBranch origin/someBranch
接着
git remote show origin
我懂了:
Local branches configured for 'git pull':
someBranch rebases onto remote someBranch
Local refs configured for 'git push':
someBranch pushes to someBranch (local out of date)
如果我做同样的事情
git checkout --track origin/someBranch
是否以某种方式在本地配置?
我该如何改变这种行为?
默认情况下,GIT会在拉取过程中merge
。 如果您正在重新设置基准,那么似乎您已在某些时候更改了该行为。 或有人帮助您。
引用本文(1) , 本文(2)和本文(3) -都描述了如何做相反的事情:
(从1开始)GIT中有一个配置标志,启用该标志后,将pull
的默认行为从merge
更改为rebase
。 检查是否已设置:
# git >= 1.7.9:
git config --global pull.rebase
git config pull.rebase
在较新的GIT客户端中,它可以直观地工作。 如果为true
,则启用它。 只需关闭标志。
但是,在较旧的版本中,它的工作方式有所不同。
# git < 1.7.9:
git config --global branch.autosetuprebase
git config branch.autosetuprebase
# and also
git config branch.<name>.rebase
当autosetuprebase
设置为always
,git会在每个新分支上自动设置rebase
标志。 这意味着不仅您可能不仅要禁用autosetuprebase
,而且还要关闭每个分支已设置的rebase
标志。
(来自#2)
如果您想要另一种方式(例如,您拥有旧的GIT客户端和大量分支,并且您确实想编写一个重置标志的脚本),那么另一种选择是为git pull
创建一个别名,该别名将添加--no-rebase
选项,将迫使它执行合并。
(来自#3)
本文说,每个分支的rebase
标志保存在配置文件中。 所以,把后autosetuprebase
过,看来你可以快速禁止rebaseing所有或删除一些树枝都rebase
从配置文件行。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.