我为本地分支发出git push origin -u,并设置分支跟踪remote_branch并推送代码。
git push origin -u local_branch:remote_branch
然后我再次发出相同的命令,但是使用不同的分支remote_branch_2名称并再次推送代码。
git push origin -u local_branch:remote_branch_2
然后我通过签发来检查:
git branch -vv
它显示local_branch正在跟踪remote_branch而不是remote_branch_2。为什么呢?
答案 0 :(得分:1)
这不是问题的解决方案,我只是想重现这个问题。
git init --bare origin-repo
git clone origin-repo clone
cd clone
touch dummy
git add .
git commit -m "yada"
git push origin master
git checkout -b branch1
git push origin branch1:remote_branch
git checkout -b branch2
git push origin branch2:remote_branch2
git checkout -b local_branch
git branch -vv
git push origin -u local_branch:remote_branch
git branch -vv
git push origin -u local_branch:remote_branch2
git branch -vv
输出:
* local_branch e7cfe7f yada
...
* local_branch e7cfe7f [origin/remote_branch] yada
...
* local_branch e7cfe7f [origin/remote_branch2] yada
这是预期的。
@Boon,这如何符合您的行为?
@joran,我修改了上述步骤以反映我所做的事情:
git init --bare origin-repo
git clone origin-repo clone
cd clone
touch dummy
git add .
git commit -m "yada"
git push origin master
git checkout -b branch1
git push origin -u branch1:remote_branch
git push origin -u branch1:remote_branch2
git branch -vv
注意:以前我的输出显示branch1正在跟踪remote_branch。按照您在此处的步骤操作,我无法获得相同的结果 - remote_branch2会按预期进行跟踪。
将选择你的答案,因为它证明我的结果可能存在问题(并且git init --bare和clone非常酷!)