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

时间:2013-10-07 00:03:17

标签: git github repository undelete

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

5 个答案:

答案 0 :(得分:19)

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

  

git checkout abcd file-to-restore

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

答案 1 :(得分:6)

我们假设意外删除了文件“ undelete.sh”。

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

git rev-list -n 1 HEAD -- undelete.sh

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

ae85c23372a8a45b788ed857800b3b424b1c15f8

现在,您可以在删除文件之前签出文件的版本:

git checkout ae85c23372a8a45b788ed857800b3b424b1c15f8^ -- undelete.sh

您应该将文件退回。您可以添加,提交并推送到存储库中。

source

答案 2 :(得分:1)

1.如果已删除的文件位于.gitignore,则您可以在.gitignoregit add中将其删除。

2.您可以使用git reset 'commit id contains your deleted file'然后合并并再次推送。

答案 3 :(得分:0)

您应该使用git reset HEAD~,然后使用git checkout -- <filename>恢复已删除的文件。

答案 4 :(得分:0)

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

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

git rev-list -n 1 HEAD -- src/main/java/runner/Main.java

这给了我

6009ff608bc580cf38baf5fa67e232c8bd20c5a7

而且,这就是我还原它的方式。

git checkout 6009ff608bc580cf38baf5fa67e232c8bd20c5a7~1 src/main/java/runner/Main.java