【发布时间】:2011-09-17 22:52:31
【问题描述】:
以下命令的意义是什么:
git pushgit push origingit push origin master
【问题讨论】:
标签: git version-control git-push
以下命令的意义是什么:
git pushgit push origingit push origin master【问题讨论】:
标签: git version-control git-push
git push <remote> <refspec>
这个命令将一些东西从本地仓库推送到远程仓库。 <remote> 可以是已配置远程的名称或远程 git 存储库的完整 URL。
<refspec>,一般形式是可选的+,后跟<src>:<dst>,其中<src> 是本地分支的名称、标记或提交ID,<dst> 是远程分支的名称或要推送到的标签。如果省略:<dst>,则相当于<src>:<src>。这意味着git push origin master 等价于git push origin master:master。 + 用于尝试非快进推送。
如果您不提供远程存储库(第三个参数),则将使用为当前分支配置的远程(如果有),如果没有,则使用origin。
如果您不提供要推送的 refspec(第四个参数),那么如果为被推送的远程配置了推送 refspec(配置变量:remote.<remotename>.push),则使用它,否则行为取决于配置变量push.default的设置。
默认为matching,它会推送所有与被推送到的远程上的远程分支匹配(按名称)的本地分支。
push.default 的其他选项是 nothing(什么都不做),upstream 或 tracking 将当前分支推送到其配置的上游分支,current 将当前分支推送到同名分支在遥控器上。
【讨论】:
git push 中省略 refspec 时的行为经常被误解。