Git push使用

Git Push语法

git push <远程主机名> <本地分支名>:<远程分支名>

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 #与上面等同