最后 7 个 Git 提交消失了,头部向后移动



所以我做了一个本地提交,上床睡觉。第二天,我最近的 7 次提交消失了。发生了什么事?

我能够恢复提交,但我真的很想了解发生了什么。这是 git 第一次发出这样的恐慌。

Git 存储库部分日志:

* 51a1ea1 A Trace-base...
* fe62749 (fixingMess) Implemented...    # <- I has here
* 498792a Finishing proposal
* 847fa4b Adding definition...
* d2ec4a6 Finishing related work
* 7c7c48a Completing proposal...
* f34274f Removed excessibe...
* d9ccd63 Chaning figs to subfigs.
* d1561db Refomulated proposal     # <- Then, it jumped here
* 9e0698b Adding student automatic...
* 46a9cb1 Adding citations...
* b3e2614 Correcting references
* 078ae5f Added Proposal
* f717235 Updating ignore file
* b10811d Cosmetics.

查了我的指挥历史,什么也没找到,尽管我当时换了炮弹,一些历史丢失了。这是我所拥有的:

git status
git commit -am "Finishing related work"
git status
git commit add -am "Adding definition..."
git commit com -am "Adding definition..."
git commit -am "Adding definition..."
git push
git status
git commit -am "Finishing proposal"
git push

(缺少命令)

458  git status
459  git add paper.tex
460  git commit -am "Implemented..."
504  git status

某些命令在损坏本地存储库上运行。

当我这样做git status时,我会收到以下消息。

您的分支是最新的"源/主"。

git refloggit reflog HEADgit reflog master的结果:

 d1561db HEAD@{0}: commit: Refomulated proposal
 9e0698b HEAD@{1}: pull: Fast-forward
 b3e2614 HEAD@{2}: pull: Fast-forward
 2f0d4fb HEAD@{3}: pull: Fast-forward
 3a0bef4 HEAD@{4}: pull: Fast-forward
 d7b0ddf HEAD@{5}: pull: Fast-forward
 d96f7ae HEAD@{6}: clone: from gitolite@XXXXXXXXX:graph-moocs

cat .git/HEAD结果: 参考: 参考/头/大师

"git 分支"的结果: *主人

我做了一个新的克隆,最后 6 个提交出现在新文件夹中。我没有将最后一次提交推送到远程服务器,所以远程很好。

我能够用git fsck --lost-found恢复我的提交并checkout一个悬而未决的提交(在尝试了所有其他提交之后)。

发生了什么事?我该如何调查?(我保留了一份有缺陷的本地回购的副本以供调查!

听起来你可能在分离的 HEAD 状态下提交。试试git reflog master .如果您的提交不存在,但它们在 git reflog HEAD ,这是一个很好的指示。

分离的 HEAD 意味着您签出了提交,而不是本地分支。因此,您所做的任何提交都将仅由 HEAD 引用。在您重置或签出其他分支之前,这很好。此时,您唯一的办法是转到您的 reflog,默认情况下,它将保留未引用的提交长达 30 天。

通常,不建议使用分离的HEAD。

最新更新