git push <远程主机名> <本地分支名>:<远程分支名>
git push origin master
origin 指定了你要 push 到哪个 remote,master 其实是一个 “refspec”,正常的 “refspec” 的形式为 ”<src>:<dst>”
,冒号前表示 local branch 的名字,冒号后表示 remote repository 下 branch 的名字。
注意,如果你省略了 <dst>
,git 就认为你想 push 到 remote repository 下和 local branch 相同名字的 branch。听起来有点拗口,再解释下,push 是怎么个 push 法,就是把本地 branch 指向的 commit push 到remote repository 下的 branch,比如:
$git push origin master:master
在 local repository 中找到名字为 master 的 branch,使用它去更新 remote repository 下名字为 master 的 branch,如果 remote repository 下不存在名字是 master 的 branch,那么新建一个:
$git push origin master
省略了 <dst>
,等价于 “git push origin master:master”:
$git push origin master:refs/for/mybranch
在 local repository 中找到名字为 master 的 branch,用他去更新 remote repository 下面名字为 mybranch 的branch:
$git push origin HEAD:refs/for/mybranch
HEAD 指向当前工作的 branch,master 不一定指向当前工作的 branch,所以我觉得用 HEAD 还比 master 好些:
$git push origin :mybranch
在 origin repository 里面查找 mybranch,删除它。用一个空的去更新它,就相当于删除了。
本地的 test 分支推送到远程 origin 仓库的 rtest 分支:
git push origin test:rtest
如果当前本地就是 test 分支,要推送到远程的 test 分支:
git push origin test:test git push origin test #等同上面
把当前本地的分支推动到远程 test 分支:
git push origin HEAD:test
本地当前分支推送到远程同名的分支:
git push origin
强制推送:
git push --force origin
删除远程 test 分支:
git push origin :test git push origin --delete test #与上面等同