我刚敲完我的全局.gitconfig文件,然后发现我已经设法结束了:
[branch]
autosetupmerge = always
autosetuprebase = always
这似乎有点不合常理,但是经过阅读后,我仍然不知道我是否同时需要这两个知识,或者是否足以去除autosetupmerge并保留它autosetuprebase。我正在工作的大多数项目都有一个顺畅的顺流->顺流,因此在处理分支时通常首选重新定级。
Answers:
在这里违反直觉的是这些首选项的命名。它们看起来确实像是在指代相同的功能,但实际上它们不是:
autosetupmerge控制是否git branch和git checkout -b暗含该--track选项,即通过设置always,
git checkout branchname,如果branchname存在于远程但不在本地,则会创建branchname跟踪其远程对应对象git checkout -b newbranch将newbranch在发出此命令之前创建一个新的分支跟踪您已签出的任何分支autosetuprebase控制是否应将新分支设置为要重新建立基础git pull,即您的设置always将导致建立分支,从而git pull始终执行重新基础而不是合并。(请注意,当您更改此选项时,现有分支保留其配置。)因此,拥有autosetupmerge = always和都是很有意义的autosetuprebase = always。实际上,这也是我所拥有的。
pull。真。如果您从未使用过git,则会了解git的内部工作原理并得到更好的工作流程pull。无论是git remote update; git rebase/merge upstream/master或git fetch; git rebase upstream/master...混帐拉最终会做你是不是期待着什么。然后您将对内部运作方式了解不足。最好今天多打字然后学习,而不是稍后才知道不知道如何解决:)
git config branch.<branchname>.rebase true
branch.autoSetupMerge=always对于新分支似乎没有意义。意思是,git checkout -b b1将上游设置为master(通常)本地存储库的分支。重点是什么?
由于这是第一命中,因此,如果您使用google搜索“ autosetuprebase”,请参考以下建议:
git config --global branch.autosetuprebase always
当我在寻找“ autosetuprebase”的其他可能选项时,花了一些时间才能找到它们,它们是:
branch.autosetuprebase
当使用git branch或git checkout跟踪另一个分支创建新分支时,此变量告诉Git设置拉动以重新设置基数,而不是合并(请参阅“ branch..rebase”)。
never,则rebase永远不会自动设置为true。local,则将其他本地分支的跟踪分支的rebase设置为true。remote,则将远程跟踪分支的跟踪分支的rebase设置为true。always,则所有跟踪分支的rebase都将设置为true。您可能不需要设置autosetupmerge-默认值为true。
autosetupmerge和autosetuprebase。见branch.autosetupmerge并branch.autosetupconfig在获得更多信息git的帮助:kernel.org/pub/software/scm/git/docs/git-config.html。