通常,我创建一个这样的分支:

git checkout branch
git checkout -b new_branch

它之所以运作良好,是因为它不会自动设置上游分支,因此会向我显示警告以 push 设置上游分支。我通常复制粘贴它,然后它正确地跟踪一个远程分支...

那说起来很麻烦...

因此,我开始使用一种新方法来减少步骤数量:
git checkout -b new_branch from_branch

不幸的是,它给了我这个输出:
git checkout -b xxx origin/staging
Branch xxx set up to track remote branch staging from origin.
...

所以当我尝试推送时,它给了我这个错误:
fatal: The upstream branch of your current branch does not match

显然上游不是我想要的……我宁愿让它自动添加origin/xxx或根本不添加上游。

我看到有一个“--no-track”选项;有没有办法将其设置为默认值?使用track选项我没有成功。

最佳答案

tl; dr:您可能想做git config --global push.default=upstream,但是裸git push将执行的确切操作还有其他设置,可能对您的工作流程更有利。

Git的默认设置一直在进行中。裸git push曾经执行过的操作曾经……好吧,它的C++术语是“专家友好的”,对理解的人来说是完全有意义的,但对于仍然发现自己的腿的人来说却是一个惊喜。因此,然后git添加了push.default设置和各种“模式”,以决定裸git push会做什么的方式,以期找到并最终切换到不会导致新手提示他们只会造成损害的合理的想法不知不觉地做。
简短的形式是,新的出厂默认行为实际上是防止 child 使用的上限,这是您必须学会克服的事情,它可以防止粗心的人伤害自己。
如果您阅读the git push docs,则表示所有这些内容,并指向git configpush.default文档:

the other options are

关于git - 从另一个分支创建一个分支而不跟踪它,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41896812/

10-14 14:13
查看更多