做了一个提交,现在主人有0个父母

时间:2015-11-06 22:32:15

标签: git

一位同事承诺master以某种方式与所有历史分开。 Github在查看提交时显示0 parents。我不知道对master的最后“好”提交是什么,它可能是来自功能分支的合并。我在哪里开始解决这个问题?

1 个答案:

答案 0 :(得分:3)

你的同事很可能设法创建一个没有历史记录的提交,然后将其推送到github。我不希望github通常接受这样的推动,因为它重写历史 - 也许你的同事使用了--force选项。

无论如何,当你在git中丢失提交时要做的第一件事总是git reflog。它将向您显示最近您作为HEAD提交的内容的日志,并且您可以使用commit的SHA1 id来检查它们。

因此,如果您发现使用SHA1“abcdef”的良好提交,您可以git checkout abcdef并查看内容。如果您想将其作为主分支,请执行git checkout abcdef -b master(将-b替换为-B以覆盖现有的主分支。)

但这些都是本地操作。要在github上获取它,你当然必须git push它。但是,由于您的同事已重写历史记录,您必须重复您同事的错误:您必须git push --force