Git - 如何跟踪从本地分支创建的远程分支?

时间:2010-11-08 04:01:11

标签: git

这是情景。

我在分支my_new_branch

中有一系列提交

我想将此分支作为一个不同的名称推送到远程仓库并跟踪它。

如果我这样做:

git push origin my_new_branch:different_name

它推动了分支。

但如果我留在my_new_branch并进行另一次提交,如果我只是

git push

它说“一切都是最新的”

此外,如果我查看.git / config,我可以看到它没有设置跟踪分支。

当然我可以做到

git push origin my_new_branch:different_name 

再次,但如何让它跟踪?

如果我这样做

git checkout -b my_new_branch origin/different_name

它抱怨分支名称已经存在。

谢谢!

2 个答案:

答案 0 :(得分:2)

正如您所提到的,问题“How do you make an existing git branch track a remote branch?”表示可以为本地分支设置上游分支(您推送的分支)(自Git1.7.0起)。

git branch --set-upstream my_new_branch origin/different_name

取代:

git config branch.my_new_branch.remote origin
git config branch.my_new_branch.merge refs/heads/different_name

默认情况下,git push使用特殊的refspec':'

  

特殊refspec :(或+:允许非快进更新)指示git推送“匹配”分支
  对于本地存在的每个分支,如果远程端已存在同名分支,则更新远程端。
  如果未找到显式refspec,则这是默认操作模式(既不在命令行上也不在相应远程文件的任何Push行中)。

因此你的问题是“git push”(没有参数)。

答案 1 :(得分:1)

如果你在推动时记得使用-u,git会自动为你设置。

  

-u, - set-upstream

     

对于每个最新或成功推送的分支,添加上游(跟踪)引用,由无参数git-pull(1)和其他命令使用。有关更多信息,请参阅git-config(1)中的branch..merge。

相关问题