-3

如果我正确理解了消息(在标题中),我不知何故一直在使用 Xcode 提交所有更改,而不是在任何分支上。我不记得它是如何以及何时发生的,可能是当我在分支上试图从 master 签出一个版本时。

现在,在 Xcode 的源代码管理导航器中,如果我单击其中一个分支或主分支,我只会看到非常旧的提交。只有在 Xcode 的源代码管理导航器中单击最顶部的项目/应用程序名称时,我才能看到最近的提交。

此外,如果我签出最近的版本(最近 3 个月内),所有后来的版本都会丢失(我再也看不到它们了)。如果我尝试挑选代码,Xcode 会告诉我工作副本当前不在分支上。

另一个奇怪的事情是 git status 说“HEAD detached from 0c3e248”(在下面的屏幕截图中用白色圆圈标记为 3)。这点只是大约一周前,似乎还没有在任何分支上,而最新的“正确”提交在“保留”分支上(在屏幕截图中用白色圆圈标记为 5)。

我想让一切恢复正常。如果那不可能,我希望能够

  1. 回到较早的版本(在屏幕截图中标记为 2)而不会丢失以后的版本
  2. 挑选代码

试图在互联网上搜索这个问题,但不是很幸运。请帮忙

我不是 git 专家,所以如果我没有正确解释它,请多多包涵,并告诉我在初学者级别该怎么做。

下面是“git log --graph --all --oneline”生成的git树的截图,带有以下标记:

  1. -- 最新提交(不在任何分支上)
  2. -- 我想要返回的提交(或之前的提交,它们也不在任何分支上)
  3. -- git status 返回“HEAD detached from”的提交(不在任何分支上)
  4. -- master 分支上的最后一次提交
  5. -- 任何分支上的最新提交

树的第 1 位

树的第 2 位

树的第三位/最后一位

4

1 回答 1

0

正如@matt 善意地指出的那样,问题是分离的头,所以他提供的链接(如何处理在分离的头中进行的提交)确实帮助了我。感谢马特的所有建议和耐心。

于 2020-01-07T21:34:44.637 回答