如何恢复 git 中的提交

How to recover a commit in git

我在一个个人项目中做了一整天的工作,并将其提交给了一个分支。然后我意识到我要提交给 master 并创建一个新的分支来推送,然后 git 切换到那个分支。之后我切换回去但找不到我的提交。有没有办法恢复创建分支之前的提交?它恢复了我的很多工作。

git reflog 应该有帮助,只要它在某个时候被提交,它就会仍然存在。

您将得到如下输出:

57a5b3a (HEAD -> some-branch, origin/some-branch) HEAD@{0}: commit: made changes
3092bca HEAD@{1}: commit: Other changes
7021685 HEAD@{2}: commit: More changes
2d882b8 HEAD@{3}: commit: even more changes
dc30cbc (origin/master, master) HEAD@{4}: checkout: moving from master to some-branch
dc30cbc (origin/master, master) HEAD@{5}: commit: I hope your commit messages are better than this

只需找到您想要的那个并查看一下

reflog命令在这里可能会有用。它将显示分支提示所在位置的历史记录。

如果您确实提交了工作并且现在在该分支上签出,我不确定您如何 "lost" 提交。

如果您记得该消息(ctrl-r 可能有帮助),您可以通过以下方式找到提交:

git log --all --grep 'the message'