autosetuprebase vs autosetupmerge
我只是在我的全球.gitconfig
文件中敲,我注意到,我已经设法结束了这一点:
[branch] autosetupmerge = always autosetuprebase = always
这看起来有点违反直觉,但在做了一些阅读之后,我仍然不知道是否需要这两者,或者是否足以删除autosetupmerge
并保留autosetuprebase
。 我工作的大多数项目都有一个直下游 – >上游stream程,所以在处理分支机构时,重新分配通常是首选。
你可能不需要设置autosetupmerge —默认是true。
这些偏好的命名是违反直觉的。 他们看起来像他们提到相同的function,但实际上他们不:
-
autosetupmerge
控制是否git branch
和git checkout -b
意味着--track
选项,即与您的设置always
,-
git checkout branchname
,如果branchname
存在于远程但不在本地,将创buildbranchname
跟踪其远程副本 -
git checkout -b newbranch
会创build一个新的分支newbranch
跟踪你发出这个命令之前检出的那个分支
-
-
autosetuprebase
控制是否应该设置新的分支在git pull
设置,即你的设置always
会导致分支被设置,这样git pull
总是执行rebase而不是merge。 (请注意,当您更改此选项时,现有分支会保留其configuration。)
所以autosetupmerge = always
和autosetuprebase = always
是非常autosetuprebase = always
; 其实这也是我的。
因为这是第一次打击,如果你search“autosetuprebase”与谷歌,在这里一个build议:
git config --global branch.autosetuprebase always
值得一提的是autosetupmerge = always(在你的configuration中)和autosetupmerge = true(默认值)之间是有区别的。
true将只设置远程分支的合并。 总是会包括当地的分支机构。
你可能要真实。
当我正在寻找其他可能的选项“autosetuprebase”,并花了一些时间来find他们,在这里他们是:
branch.autosetuprebase
当使用git branch
或git checkout
创build一个新的分支来跟踪另一个分支时,这个variables告诉Git将pull设置为rebase而不是merge(参见“branch..rebase”)。
-
never
,rebase永远不会自动设置为true。 -
local
,其他当地分行的追踪分行设置为“真”。 -
remote
,远程跟踪分支的跟踪分支的rebase设置为true。 -
always
,所有跟踪分支的rebase将被设置为true。
资料来源: http : //git-scm.com/docs/git-config.html