📌  相关文章
📜  在 Git 中恢复丢失的提交

📅  最后修改于: 2021-10-24 12:48:56             🧑  作者: Mango

Git 是一个非常强大的工具,强大的力量伴随着巨大的责任。如果没有正确使用和处理,它可能会导致您丢失提交。在某些情况下,您可能会立即发现所有工作都丢失了。

如果您定期提交工作,则有一种方法可以恢复这些丢失的提交
本教程旨在使用

git reflog

git cherry-pick

在 Git 中恢复丢失提交的命令。

程序

恢复丢失提交的第一步是恢复之前在存储库上完成的所有提交和操作的列表。

运行这个命令

git reflog

运行命令后,这就是您将看到的输出。

$ git reflog
c9f9669 HEAD@{0}: commit: Fixed test cases to run on Unix
b3ca8a4 HEAD@{1}: pull: Fast-forward
54ba188 HEAD@{2}: pull origin master: Fast-forward
e659a21 HEAD@{3}: reset: moving to HEAD~1
12944d8 HEAD@{4}: reset: moving to HEAD~1
6f40152 HEAD@{5}: reset: moving to HEAD~1
3de61ba HEAD@{6}: pull: Fast-forward
e659a21 HEAD@{7}: reset: moving to HEAD^1
12944d8 HEAD@{8}: reset: moving to HEAD^1
6f40152 HEAD@{9}: reset: moving to HEAD^1
3de61ba HEAD@{10}: commit: Removed Query object   
6f40152 HEAD@{11}: pull: Merge made by the 'recursive' strategy.
12944d8 HEAD@{12}: commit: API touchups   --- We want to recover this commit.
e659a21 HEAD@{13}: commit: Test enhancements
07419e1 HEAD@{14}: pull: Fast-forward

查找要恢复的提交的哈希,例如12944d8
现在使用以下命令恢复丢失的提交。

git cherry-pick 12944d8 

恢复提交

而已!使用以下成功命令应该很快可以恢复您的工作:

Finished one cherry-pick.
[master 12944d8] API touchups
3 files changed, 36 insertions(+), 3 deletions(-)

如果发生合并冲突

如果存在合并冲突,则会显示以下消息。

error: could not apply 12944d8... API touchups
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add ' or 'git rm '
hint: and commit the result with 'git commit'

使用git status命令可以帮助您确定必须完成的工作。