Git:push是用`--set-upstream origin master`执行的,不是为了清空repo

时间:2017-03-26 18:21:28

标签: git

我是一个非常非常初学的git。我已经读过 chrome.tabs.query({ active: true, currentWindow: true }, function(tabs) { var tabURL = tabs[0].url; console.log(tabURL); }); 必须只执行一次 - 当repo为空时。

然而,我忘了并且第二次{ "manifest_version": 2, "name": "Route zezo.org", "version": "1.0", "description": "Extraire la route proposée", "permissions": [ "http://sail.zezo.org/*", "tabs" ], "icons": { "16": "icon-16.png", "48": "icon-48.png", "128": "icon-128.png" }, "browser_action": { "default_icon": "icon.png", "default_popup": "popup.html" } } 推了推。现在,当我git push --set-upstream origin master时,我得到了

--set-upstream origin master

这是什么意思,我现在该做什么?

2 个答案:

答案 0 :(得分:2)

  

我是一个非常非常初学的git。我已经读过git push --set-upstream origin master必须只执行一次 - 当repo为空时。

这不太对,有两种不同的方式。其中之一是这没关系:

  

然而,我忘了并第二次--set-upstream origin master推了推。

您可以根据需要多次执行此操作。

原始声明中的第二个缺陷是你永远不会 甚至一次。在第一个git push上执行此操作既方便又好主意,但它不是要求 1 此外,对于每个新到它的分支, 2 ,只要上游存储库为空,就做一次是个好主意。也就是说,“第一次推动”并不意味着“首先推动”,而是“首先推动每个新分支”。

每次在-u使用--set-upstreamgit push选项时,您都可以设置或重置(即不要更改),甚至执行更改,您刚刚推送的分支的上游设置。将分支 B 推送到名为origin的远程创建或更新您的origin/B 远程跟踪分支 3 ,然后将 B 的上游设置为origin/B。如果它已经设置那样,没问题!如果它根本没有设置,现在它设置:yay!如果它设置为不同,现在它被设置为origin/B.如果这就是你想要的设置:耶!如果你想要它如何设置(这似乎不太可能),这只是坏事。

要了解您想要设置或更改上游的原因,请参阅this answer相关问题。请注意,您也可以取消任何给定分支的上游。

要查看更多历史记录,以及过去在Git 1.7及更早版本的旧时代如何使用,请参阅this questionthis one

Dhiraj's answer解释了您现在所看到的内容。

1 使用-u本身并不是必需的。但是,如果另一个Git存储库(您要推送的存储库)不拥有同名的分支,您的push.default配置是{ {1}},simple的替代方法是git push -u origin master,即您必须指定两次分支名称。写git push origin master:master一次更短,-u的上游设置为新创建的master,这是一件好事 - 所以它更短更好使用origin/master一次,但不是必需

2 当您运行-ugit push - 或git fetch,它只运行git pull然后再运行第二个Git命令时你的Git打电话给另一个Git。其他Git拥有自己的分支。这些分支有自己的提交,可能与您在分支机构的提交相匹配也可能不匹配。显然,一个新的,完全空的存储库有 no 提交(因此没有分支), 4 ,但是如果你创建了一个名为git fetch的新分支,<他们的 Git可能还没有zorg:分支对他们来说是新的。

3 您的远程跟踪分支 - 例如zorg - 是您的 Git要记住的一种方式,为了您的方便,您的 Git从他们的(来源)Git获取关于他们的分支,上次您运行origin/mastergit fetch到{{1 }}。这就是它们的用途。使用git push(或origin)可以随时更新所有内容,只要您认为它们可能已更改并且您想要查找。

4 哲学问题:分支存在意味着什么,但没有提交? 是否存在“空分支”这样的事情? (Git的答案主要是不,没有这样的东西,但还有其他的版本控制系统 - 我只是说“大部分”......)

答案 1 :(得分:1)

在GitHub,您可以选择默认签出的分支(即克隆时)。默认情况下,origin / HEAD将指向该值。

请参阅此链接了解更多详情  Why is "origin/HEAD" shown when running "git branch -r"?