如何在git rm之后取消删除文件并推送到github?

Ale*_*hao 17 git github repository undelete

我最近在我的本地机器上克隆了一个存储库,然后在其中一个文件上执行了git remove并将这些更改推送回github存储库.我的问题是如何在原始的github存储库上恢复该文件?

acj*_*acj 27

如果您可以找到包含abcd已删除文件的先前提交,则可以使用

git checkout abcd file-to-restore

恢复它.您需要再次提交该文件.


mev*_*hee 23

假设文件“undelete.sh”被意外删除。

然后获取删除此文件的提交的哈希:

git rev-list -n 1 HEAD -- undelete.sh
Run Code Online (Sandbox Code Playgroud)

这为您提供了删除的哈希值:

ae85c23372a8a45b788ed857800b3b424b1c15f8
Run Code Online (Sandbox Code Playgroud)

现在您可以在删除前检出文件的版本:

git checkout ae85c23372a8a45b788ed857800b3b424b1c15f8^ -- undelete.sh
Run Code Online (Sandbox Code Playgroud)

你应该把文件拿回来。您可以添加、提交并将其推送到存储库。

来源


oxy*_*xyt 5

其他解决方案对我不起作用。我就是这样做的。

这就是我获取提交哈希的方式。(从上面复制的

git rev-list -n 1 HEAD -- src/main/java/runner/Main.java
Run Code Online (Sandbox Code Playgroud)

这给了我

6009ff608bc580cf38baf5fa67e232c8bd20c5a7
Run Code Online (Sandbox Code Playgroud)

而且,这就是我恢复它的方法。

git checkout 6009ff608bc580cf38baf5fa67e232c8bd20c5a7~1 src/main/java/runner/Main.java
Run Code Online (Sandbox Code Playgroud)