上传消息切换回空主分支?

时间:2014-07-21 16:34:25

标签: git github version-control

我的git版本是Git-1.9.4-preview20140611 早些时候,我克隆了一个空的git origin存储库。克隆了存储库,但有以下消息

警告:您似乎克隆了一个空存储库。 检查连接性......已完成。

接下来,复制了另一个项目的主Git存储库中的.gitIgnore文件,并将其提交给本地主服务器。此文件之前已被我们使用过很多次。这似乎很好。 我们为所有项目提供了标准化的.gitIgnore文件。这是最佳实践的一部分。

接下来创建了一个新分支,并在本地git repo所在的物理位置复制了一些代码

git checkout -b FromCC

添加了代码并在此分支中提交。

git add --all
git commit -M "Blah"

所有这些操作都是成功的。

我的目的是将这些更改最终合并到本地主分支。

我接下来要做

git checkout master

并获得以下信息。

您的分支机构基于&origin; /',但上游已经消失。 (使用" git branch --unset-upstream"来修复)

这条消息是什么意思? 为什么上游会消失?' ?

有趣的观察: 我今天使用相同的主Git存储库重复了相同的过程。这次Git存储库不是空的。它之前有.gitIgnore文件。这次没有出现前面提到的消息。

3 个答案:

答案 0 :(得分:34)

它不是上游存储库origin本身),而是您克隆的特定分支(原点为master)。

此外,git的消息具有误导性:原点上的分支master 不会消失,它从不存在。克隆空存储库时,它根本没有分支。它继续没有分支机构。因此,设置为跟踪master的本地origin/master正在跟踪一个确实存在(确实)不存在的分支。

此消息更适用于以下情况:

$ git clone ...
$ git checkout featureX   # track some feature branch
[go away for a week, come back]
$ git fetch -p            # update remote branches

其中,在那个星期你离开的时候,featureX分支被删除了(大概是合并到它的开发线上,然后不再需要)。此时,您位于本地分支featureX,设置为跟踪远程分支origin/featureX,但不再有origin/featureX

但是,在这种情况下,当没有master 时,您有本地分支origin/master跟踪origin/master。一旦你创建它(通过使存储库非空的推送),问题就会消失。这种情况只会因为默认情况下以master开头,即使遥控器为空且实际上还没有master

答案 1 :(得分:3)

作为git / github的新手,我在github和git clone d创建一个完全空的repo到本地之后遇到了这个。包括关于空回购的警告。然后,对新创建的本地文件的提交给出了关于"上游消失的消息"。

以下假设有人想使用远程仓库,因此需要设置上游:

我想补充一点,github在创建空仓库时建议了一些命令。关键的一个是git push -u origin masterinit之后,add(对于文件),commitremote add origin <url>命令。这会将本地存在的主服务器传输到远程github存储库。

-u切换到push会将上游(长版本是--set-upstream)设置为github上的设置。 我不得不承认,那个开关的git-push联机帮助页的其余部分对我来说仍然是神秘的...因为本地不是最新的也没有成功推动。

消息已消失,因为现在主分支也可用于远程仓库。

答案 2 :(得分:0)

我和github有同样的错误信息。 实际问题是我没有批准对存储库的邀请。所以git认为我没有回购权。