git push origin master和git push之间的区别

时间:2015-09-11 13:37:31

标签: git

这两个命令之间有什么区别。

if (isset($_POST['submit_dCSV'])){ ob_clean(); ob_start(); header('Content-Type: text/csv'); header('Content-Disposition: attachment; filename="export.csv"'); header('Pragma: no-cache'); header('Expires: 0'); $message = ""; $institutions = explode_institutions(); $fp = fopen('php://output', 'w'); foreach ($institutions as $inst){ fputcsv($fp, $inst); } echo "Export successful"; } git push origin master

当我使用第一个(git push)时,它以某种方式将它向上游发送2x,而只有git push origin master它将它发送1x。

任何人都可以解释为什么会这样?

1 个答案:

答案 0 :(得分:8)

通过指定没有存储库参数的$ git push,默认情况下它会将当前分支推送到跟踪远程分支。

当您指定$ git push origin时,您明确地将更改推送到origin远程存储库。

至于你向上游发送“2x”的问题,这不应该是行为。它会将更改一次性推送到上游存储库。

Documentation on git-push

当您执行没有参数的$ git push时,Git实际上非常详细,需要采取的措施:

warning: push.default is unset; its implicit value has changed in
Git 2.0 from 'matching' to 'simple'. To squelch this message
and maintain the traditional behavior, use:

  git config --global push.default matching

To squelch this message and adopt the new behavior now, use:

  git config --global push.default simple

When push.default is set to 'matching', git will push local branches
to the remote branches that already exist with the same name.

Since Git 2.0, Git defaults to the more conservative 'simple'
behavior, which only pushes the current branch to the corresponding
remote branch that 'git pull' uses to update the current branch.

See 'git help config' and search for 'push.default' for further information.
(the 'simple' mode was introduced in Git 1.7.11. Use the similar mode
'current' instead of 'simple' if you sometimes use older versions of Git)