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