一直迷糊git push origin与git push -u origin master的区别,今天找到合理的解释,仅此记录。
$ git push origin
上面命令表示,将当前分支推送到origin主机的对应分支。
如果当前分支只有一个追踪分支,那么主机名都可以省略。
$ git push 如果当前分支与多个主机存在追踪关系,那么这个时候-u选项会指定一个默认主机,这样后面就可以不加任何参数使用git push。
$ git push -u origin master 上面命令将本地的master分支推送到origin主机,同时指定origin为默认主机,后面就可以不加任何参数使用git push了。
在远端服务器新建分支:
方法1:
git checkout -b dev
相当于:
git branch dev
git checkout dev
#建立本地到上游(远端)仓的链接 --这样代码才能提交上去
git branch --set-upstream-to=origin/dev
git branch --set-upstream debug origin/debug //其中debug为创建的分支
git push origin dev
#取消对master的跟踪
git branch --unset-upstream master
方法2:
git branch -b stage2
git push origin 本地分支名:远端分支名xx // 在服务器新建新分支名xxx
对比:
git branch -b stag2
git push origin stage2:refs/for/stage2 // 代码入库命令,不会新建新分支在远端
git push的一般形式为 git push <远程主机名> <本地分支名> <远程分支名> ,例如 git push origin master:refs/for/master ,即是将本地的master分支推送到远程主机origin上的对应master分支, origin 是远程主机名,
第一个master是本地分支名,第二个master是远程分支名。