git - 关于切换回空主分支的上游消失消息?

标签 git github version-control

我的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/

相关文章:

git - Visual Studio 2015 git 出错

svn - 如何将 svn 分支和标签导入 git-svn?

git - 如何在不添加到孤儿历史的情况下将主分支的更改 merge 到孤儿分支?

github - 在私有(private)存储库的 GItHub 工作流程中使用 secret

svn - 深层目录结构的稀疏 svn 更新

git - Git(存储库、分支、提交)元组的正式表示法

maven - 如何将 Github 原始存储库作为代理存储库添加到 Sonatype Nexus?

git - key_load_public : invalid format

android - 如何将带有源代码控制的Eclipse项目导入Android Studio而不将目录结构更改为Gradle目录结构?

svn - 从 SVN 转储中删除空修订时出现问题