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



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

如果可以找到包含已删除文件的上一个提交abcd,则可以使用

git 签出 ABCD 文件还原

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

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

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

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

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

ae85c23372a8a45b788ed857800b3b424b1c15f8

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

git checkout ae85c23372a8a45b788ed857800b3b424b1c15f8^ -- undelete.sh

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

(来源)

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

这就是我获取提交哈希的方式。(摘自上文

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

这给了我

6009ff608bc580cf38baf5fa67e232c8bd20c5a7

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

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

1.如果删除的文件在您的.gitignore中,则可以将其.gitignore删除并再次git add

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

您应该

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

最新更新