如何在GitHub Desktop撤销「撤销最近提交」并找回丢失文件
找回被撤销提交的文件&重做撤销操作的方法
嗨,别慌!Git其实会悄悄记下所有操作记录,你不小心撤销的提交并没有真的消失,咱们一步步把它找回来,同时也告诉你怎么在GitHub Desktop里正确执行撤销最近提交的操作。
一、找回被撤销提交里的文件
打开仓库的终端窗口
在GitHub Desktop顶部菜单栏点「Repository」,选「Open in Terminal」,这样就能进入本地仓库的命令行环境。找到被撤销的提交记录
在终端里敲这个命令:git reflog你会看到一堆操作日志,每条都有一串短哈希值(比如
a3f5b79)、操作描述和时间。找那条标记着commit:的记录——就是你之前被撤销的那个提交,时间应该和你当初提交的时间对应,把它的哈希值记下来。恢复提交内容
- 要是你只是想看看那个提交里的文件,就敲:
这时候你会进入“分离头指针”状态,所有文件都会变回那个提交时的样子。git checkout <刚才记下的哈希值> - 要是你想直接把仓库恢复到那个提交的状态(毕竟你现在显示0 Changes,不会覆盖其他内容),就敲:
执行完切回GitHub Desktop,你就能看到之前的文件都回来了!git reset --hard <刚才记下的哈希值>
- 要是你只是想看看那个提交里的文件,就敲:
另外,也可以试试在GitHub Desktop的「History」标签页里搜索——输入提交的关键词或者哈希值,说不定能直接找到那个被撤销的提交,右键点「Checkout commit」也能恢复。
二、在GitHub Desktop里重做「撤销最近提交」的操作
如果你之后需要再次执行这个撤销操作,或者找回提交后想再撤销一次,步骤超简单:
- 先确保你在目标分支上,而且最近的那个提交就是你想撤销的。
- 点顶部菜单栏的「Repository」,在下拉菜单里找到「Undo Most Recent Commit」,点它就行啦!
小提醒:如果这个提交已经推送到远程仓库,GitHub Desktop会弹出提示问你要不要撤销远程的提交,这时候要谨慎操作哦——毕竟远程仓库可能还有其他人在协作。
内容的提问来源于stack exchange,提问作者JUlinder




