Git 学习日记–git push 参数
背景
git push
负责将本地分支的变更上传到指定的远程仓库,并从远程仓库合并你的新提交记录
Git
是通过当前检出分支的属性来确定远程仓库以及要push
的目的地,这是未指定参数的行为,其与push.default
的配置有关。
如果本地分支与远程仓库建立了跟踪,则git push
可以推送成功,否则需要建立跟踪,并推送。
git push 的参数
-
指定执行推送的分支:
git push <remote> <place>
通过“
place
”参数来告诉Git
提交记录的来源,这样一来Git
就忽略了我们所检出的分支的属性!(在别的分支,也能推送另一个分支至远程对应分支)eg:
git push origin master
:切到本地仓库的master
分支,获取所有的提交,再到远程仓库“origin
”中找到“master
”分支,将远程仓库中没有的提交记录都添加上去,搞定之后告诉我。 -
来源与去向名称不同的分支之间的推送
要同时为源和目的地指定
<place>
,需要使用:
进行连接:git push origin <source>:<destination>
一旦指定了独立的来源和目的地,就可以组织出言简意赅的远程操作命令
- 本地分支已经与远程分支建立了跟踪:
- 如下初识状态,本地master与远程master建立了跟踪,本地处于foo分支
- 执行
git push origin foo^:master
命令
Git
将foo^
解析为一个位置,上传所有未被包含到远程仓库master
分支中的提交记录
-
要推送的目的分支不存在
命令:
git push origin master:newBranch
Git
会在远程仓库中根据你提供的名称帮你创建这个分支!-
远程仓库对应的master对应的分支不存在
-
git push origin master:newBranch
它会在远程仓库中根据你提供的名称帮你创建这个分支
-
-
例子:
初识状态:
目标状态:
-
将foo分支的变更推送至远程master分支:
git push origin foo:master
-
将本地master分支的前一个变更提交至远程foo分支:
git push origin master^:foo
-