理解push的前提是理解remote仓库和local仓库以及origin/master
remote仓库保存一个 origin/master
local仓库保存一个 origin/master
local仓库还有一个 master
当使用push
时,本质是将local master 和 remote origin/master进行融合
git-push - Update remote refs along with associated objects
git push <rname> <lbranch>:<rbranch>
1.可以在master分支上,推送dev分支,不必切换到dev分支上再推送
$ git branch
dev
* master
$git push origin dev:dev
2.可以将dev
分支的内容推送到master
分支上
$ git push origin dev:master
git push origin master # 等同于 git push origin master:mater
git push origin # 如果本地和远程有跟踪关系则分支可以省略
git push # 如果只有一个远程主机与当前分支有关,则可以省略
git push -u origin master # 如果有多个远程主机,则可以用-u设定默认的主机,以后就可以直接git push了
git push [--all | --mirror | --tags] [--follow-tags] [--atomic] [-n | --dry-run] [--receive-pack=<git-receive-pack>]
[--repo=<repository>] [-f | --force] [-d | --delete] [--prune] [-v | --verbose]
[-u | --set-upstream] [--push-option=<string>]
[--[no-]signed|--signed=(true|false|if-asked)]
[--force-with-lease[=<refname>[:<expect>]]]
[--no-verify] [<repository> [<refspec>…]]
参考文献:
https://git-scm.com/docs/git-push