小编典典

将目录添加到 .gitignore 后从远程存储库中删除目录

all

我提交了一些目录并将其推送到 github。之后,我更改了.gitignore文件,添加了一个应该被忽略的目录。一切正常,但(现在被忽略的)目录保留在
github 上。

如何从 github 和存储库历史记录中删除该目录?


阅读 154

收藏
2022-03-02

共1个答案

小编典典

.gitignore文件中的规则仅适用于未跟踪的文件。由于该目录下的文件已经提交到您的存储库中,因此您必须取消暂存它们,创建提交并将其推送到
GitHub:

git rm -r --cached some-directory
git commit -m 'Remove the now ignored directory "some-directory"'
git push origin master

如果不重写存储库的历史记录,则无法从历史记录中删除文件 -
如果其他人正在使用您的存储库,或者您正在多台计算机上使用它,则不应这样做。如果您仍然想这样做,您可以使用git filter-branch重写历史
-这里有一个有用的指南

此外,请注意输出git rm -r --cached some-directory将类似于:

rm 'some-directory/product/cache/1/small_image/130x130/small_image.jpg'
rm 'some-directory/product/cache/1/small_image/135x/small_image.jpg'
rm 'some-directory/.htaccess'
rm 'some-directory/logo.jpg'

rm是来自 git 关于存储库的反馈;这些文件仍在工作目录中。

2022-03-02