我必须为新分支修复 git 远程的原因

Reason I have to fix git remote for new branches

我已经找到至少 3 种不同的方法来解决这个 git 问题,所以这不是这个问题的目的。一、问题:

我有一个从我们的 git 实验室服务器克隆到我的笔记本电脑的存储库。我在我的 master b运行ch,运行 "git checkout -b newBranchName" 和 git gui 中进行了更改,提交并推送。但是 "git pull" 抱怨 "There is no tracking information for the current branch. ..." 是真的。问题是 .git/config 确实没有我的 newB运行chName 的条目。但我觉得应该。

虽然 git 被高度概括为适用于 N 个遥控器和所有遥控器,但它也做出了一些假设。配置文件显示了几个具有默认(假定)值的变量,我都喜欢它们。但我希望它也假设如果我的配置文件中只有一个遥控器,对于 master,那么对于我用 "checkout -b" 制作的任何新 b运行ches 都是相同的遥控器。如果它曾经是一个错误的假设,我可以修复它。我只是不想每次都必须修复新的 b运行ches。

真的,我有两个问题。第一,为什么 git 不对我的新 b运行 进行远程假设?第二,我在创建新 b运行ches 时做错了什么吗?

在我看来你没有做错任何事。

您可以使用

为所有分支设置默认远程
$ git config remote.pushdefault <remote name>

可以使用 branch.<branch name>.pushremote 设置覆盖特定分支。

这只会让您在推送时无需提供遥控器的名称。如果您想要的话,您仍然必须告诉 git 设置一个跟踪分支。您可以使用 --set-upstream-u 来完成。这实质上将 branch.<branch name>.merge 选项设置为正确的值,但更方便。这仅适用于推送,并且仅适用于初始推送。首次获取新分支时,git 会自动设置跟踪信息(除非您更改 branch.autosetupmerge)。