如何从已删除的文件夹中“Git删除”文件?

3

我正在使用git的删除命令git rm。在使用git rm之前,我犯了一个简单/愚蠢的错误,即使用手动方式删除了一个包含所有文件的文件夹。

现在我有超过15个文件想要从我的版本库中删除,但不想一个一个地输入。

是否有一种方法可以做到这一点?

git status

deleted:    Literature/abc.md
deleted:    Literature/acdf.pdf
deleted:    Literature/dsfsdf.pdf
deleted:    Literature/dfgdfs.pdf
deleted:    Literature/sgadfgaa.md
deleted:    Literature/sdsds.pdf
deleted:    Literature/sddvasds.rmd
deleted:    Literature/ddsds.md
deleted:    Literature/fsdfsdsd.png
3个回答

1

是的,它们已经从您的工作树中删除了,但这些文件保存在上一个版本中*,因此您只需要将这些文件恢复到上次提交时的状态:

git checkout -- full/path/to/Literature/

然后像你最初打算的那样rm它们。

* (除非这些是新添加的文件,但你没有说明)


我执行了 git checkout {number} 命令,但现在我的 HEAD 已经分离。 - mccurcio
@oaxacamatt 没问题,只需使用 git checkout <yourBranch> 再次检出您的分支即可。但我不明白您为什么要输入那个。我的代码中的 -- 不是数字的占位符,而是告诉 git “在此之后的任何内容都不是参数,而是文件路径”。您能分享一下您确切输入的内容吗? - Romain Valeri

1
如果您目前没有其他更改,并且确定需要恢复到上次提交的状态,可以使用git reset --hard命令将HEAD移动到上次提交的哈希值,并放弃该提交之后所有的本地更改。
或者,更安全的方法是先使用git reset {被删除文件夹的路径}将文件取消暂存以进行下一次提交,然后再像@RomainValeri建议的那样执行git checkout -- {被删除文件夹的路径}

0
您可以使用命令。
git rm -r --cached 

更多细节请点击链接Bit Bucket文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接