`git push`扩展为`git push origin master`?

时间:2015-03-12 21:56:15

标签: git git-push

还是扩展为git push origin <current-branch-name>

参考

2 个答案:

答案 0 :(得分:5)

TL; DR

默认情况下,git pushgit push origin <current-branch>扩展为Git 2.0或旧版本为git push origin <all-matching-branches>

实际答案

关于git push的所有问题的答案都在git push的文档页面中:http://git-scm.com/docs/git-push

该页面中的一个片段(我删除了无数的选项,因为问题中未提及这些选项)

  

git push ... [<repository>] [<refspec>]

     

如果命令行未指定使用<repository>参数进行推送的位置,则会查询当前分支的branch.*.remote配置以确定推送位置。如果缺少配置,则默认为origin

     

如果命令行未指定使用<refspec>...参数或--all--mirror--tags选项推送的内容,则命令会查找默认<refspec>通过咨询remote.*.push配置,如果找不到,请尊重push.default配置以决定要推送的内容(有关push.default的含义,请参阅git-config[1]。)

由于Git 2.0 push.default的默认值为simple,这意味着推送当前分支,其中包含一些可能导致git拒绝的检查和条件在某些情况下push

Git 2.0之前,push.default的默认值曾是matching,这意味着推送两端具有相同名称的所有分支。此模式还需要满足一些条件才能成功。

有关push.default的详细信息,请参阅git config的文档页面或在终端上输入git help config

答案 1 :(得分:2)

是的,如果你是主人,它会扩展到git push origin master

如果您在分支机构mybranch,它会扩展为git push origin mybranch

如果您从未推过mybranch,则会显示以下消息:

fatal: The current branch mybranch has no upstream branch.
To push the current branch and set the remote as upstream, use

    git push --set-upstream origin mybranch

然后,您必须为第一个git push --set-upstream origin mybranch执行push一次,然后您可以执行git push,这将扩展为git push origin mybranch