【发布时间】:2012-04-21 08:04:50
【问题描述】:
如果我执行 git push,我会看到涉及 3 个分支。 1)我正在处理的本地分支,比如'foo1' 2)本地远程跟踪分支'origin/foo2'(在推/拉之后总是与远程foo3在同一个提交上)3)'foo3'在远程仓库。自然通常它们都被称为 foo,但我想要不同的名称,以便我可以正确理解 git 并在这里提出这个问题。我不明白在哪里可以指定 foo2。当我这样做时
git push origin foo1:foo3
并在我的 .git/config 中拥有它
[branch "master"]
remote = origin
merge = refs/remotes/origin/foo2
第 1 点和第 3 点没问题,但我的本地仓库中没有 origin/foo2。我错过了什么?或者是我的远程跟踪分支的答案总是与遥控器完全相同 - 这对我来说很好 - 我只是想正确理解 git。
在我的示例中,git-push 手册也只讨论了两个 ref(refspec src 和 dst),第 1 点和第 3 点。更新远程仓库上的 dst 分支后,手册在哪里谈到了本地远程跟踪 ref 也更新了?
【问题讨论】:
-
@VonC 的回答是正确的(当然:-))。我怀疑这里的根本问题是你在
push和pull之间明显的对称性上绊倒了。这是一个错误的对称。push的反义词不是pull,而是fetch。 (即使那样它们也不是完全对称的。)记住这一点,一切都应该更有意义。
标签: git push git-branch remote-branch