【发布时间】:2013-07-15 18:03:35
【问题描述】:
背景:我有一个本地存储库,它有一个远程。一段时间以来,一切都进展顺利。我在 Mac 上进行开发并使用 GitX。在我要描述的问题之前,我在 5 天前已经推送到远程,并且从那时起有 10 次本地提交未推送。
问题:我在 GitX 中进行了提交,编写了提交消息,并按下了“提交”的键盘快捷键,就像我做过很多次一样。 (至少,所以我认为——我做得很快,所以也许我偶然做了一些不同的事情——不确定。)然后发生了以下情况:
- GitX 现在将 master 显示为与 origin/HEAD 和 origin/master 完全断开连接。 (见部分 GitX 窗口截图here。)
- GitX 也没有显示自上次推送以来的 10 次提交记录。 (最近 10 次提交不在该屏幕截图的列表中。)
- GitX 似乎表明 master 的当前位置没有历史记录,好像 所有 repo 中的文件是在那个(最近的)提交中添加。 (屏幕截图中未显示。)
-
命令行中的
git log仅列出 一个 条目,这是我刚刚提交的最后一次提交。 -
命令行中的
git log -g列出了完整的历史记录,包括 10 个缺失的提交和最近的一个。
我不知道发生了什么,也不知道为什么会发生上述 5 件事。我不明白git log 和git log -g(又名git log --walk-reflogs)之间的区别,但这似乎是我缺少的数据所在的位置。
问题:如何取回仅出现在 git log -g 中的 10 次提交?我怎样才能将主人重新附加到历史的其余部分?究竟是什么导致了这种情况?
【问题讨论】:
-
关于 10 次提交,您仍然有一个远程跟踪分支指向您的仓库中的它们,
origin/master。 -
@Cupcake 不,它没有:他说他还没有推他们。
-
@Chronial 哦,提交是本地的,我的错误,我把它们弄混了。
标签: git version-control gitx