有什么区别:
$ git remote add origin git@github.com:yourname/yourproject.git
$ git config remote.origin.push refs/heads/master:refs/heads/master
$ git push
和
$ git remote add origin git@github.com:yourname/yourproject.git
$ git push origin master -u
第二个版本是否比第一个版本更新更短,还是有其他差异?
从Git 1.7.0开始,您可以将--set-upstream
选项与git push
一起使用。根据{{1}}手册:
git push
答案 0 :(得分:8)
不,这些是非常不同的。如果未指定其他refspec,则第一个配置设置remote.<name>.push
设置默认的refspec以进行推送。默认情况下,执行git push origin
会将每个分支推送到具有匹配名称的分支,只要具有该名称的分支已存在于远程上。做完之后:
git config remote.origin.push refs/heads/master:refs/heads/master
...您会发现git push origin
会将master
推送到master
。
如果推送成功,您引用的另一个命令git push -u origin master
会设置两个不同的配置选项:
branch.master.remote
设置为origin
branch.master.merge
设置为refs/heads/master
这些基本上说master
中的origin
应该被视为master
分支的默认“上游”分支。它们最明显的效果是在git pull
时为master
提供默认操作,但也用于其他各种情况,例如在{{1}的顶部提供有用的消息它告诉你git status
与master
的比较。但是,这些设置不,用于通知origin/master
和git push
的默认操作,除非您还将配置选项git push origin
设置为push.default
(或最新版本中的tracking
)。
因此,作为非常近似的摘要,设置upstream
会影响remote.<name>.push
的默认操作,而git push
会设置通常只会影响git push -u origin master
操作的配置选项。