这是情景。
我在分支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
它抱怨分支名称已经存在。
谢谢!
答案 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。