我的git版本是Git-1.9.4-preview20140611 早些时候,我克隆了一个空的 git origin 存储库。存储库已克隆,但带有以下消息
警告:您似乎克隆了一个空存储库。 正在检查连接...完成。
接下来,复制另一个项目的 master Git 存储库中的 .gitIgnore 文件并将其提交给本地 master。这个文件我们以前用过很多次。这似乎很好。 我们的所有项目都有一个标准化的 .gitIgnore 文件。这是作为最佳实践的一部分创建的。
接下来新建一个分支,在本地git repo所在的物理位置复制一些代码
git checkout -b FromCC
添加代码并提交到这个分支。
git add --all
git commit -M "Blah"
所有这些操作都是成功的。
我的目的是最终将这些更改 merge 到本地 master 分支。
我接下来做
git checkout master
并获得以下消息。
你的分支基于'origin/master',但是上游没有了。 (使用“git branch --unset-upstream”进行修复)
这条消息是什么意思? 为什么上游会“消失”?
有趣的观察: 我今天对同一个主 Git 存储库重复了相同的过程。这次 Git 存储库不是空的。它之前有 .gitIgnore 文件。这次没有出现上述信息。
最佳答案
丢失的不是上游存储库(origin
本身),而是您克隆的特定分支(master
on origin)。
此外,git 的消息具有误导性:origin 上的分支master
没有消失,它从不存在。当您克隆空存储库时,它根本没有分支。它继续没有分支机构。因此,设置为跟踪 origin/master
的本地 master
正在(正在)跟踪一个确实(不)存在的分支。
该消息更适用于这种情况:
$ git clone ...
$ git checkout featureX # track some feature branch
[go away for a week, come back]
$ git fetch -p # update remote branches
在您离开的那一周,featureX
分支被删除(可能 merge 到它的开发线中,然后不再需要)。此时你在本地分支featureX
,设置为跟踪远程分支origin/featureX
,但是没有origin/featureX
> 任何更多。
不过,在这种情况下,当还没有 origin/master
时,您有本地分支 master
跟踪 origin/master
。一旦创建它(通过使存储库非空的推送),问题就会消失。这只是因为默认情况下您从 master
开始,即使 Remote 是空的并且实际上还没有 master
。
关于git - 关于切换回空主分支的上游消失消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24870145/