远程分支跟踪不会更改为新目标

时间:2015-08-20 00:31:11

标签: git

我为本地分支发出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。为什么呢?

1 个答案:

答案 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非常酷!)