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

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

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


墨色风雨
浏览 506回答 3
3回答

白板的微信

.gitignore文件中的规则仅适用于未跟踪的文件。由于该目录下的文件已在您的存储库中提交,因此您必须取消暂存它们,创建提交并将其推送到GitHub:git rm -r --cached some-directorygit 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的反馈; 文件仍在工作目录中。

12345678_0001

我这样做:git rm --cached `git ls-files -i --exclude-from=.gitignore` git commit -m 'Removed all files that are in the .gitignore' git push origin master这将删除git忽略中的所有文件/文件夹,省去了手动选择每个文件/文件夹的麻烦这似乎已停止为我工作,我现在这样做: git rm -r --cached .  git add . git commit -m 'Removed all files that are in the .gitignore'  git push origin master

慕侠2389804

要仅从git存储库而不是从本地存储删除文件夹/目录,请尝试3个简单步骤。删除目录的步骤git rm -r --cached FolderNamegit commit -m "Removed folder from repository"git push origin master在下次提交中忽略该文件夹的步骤要在下次提交时忽略该文件夹,请在根目录.gitignore中创建一个文件 ,并将该文件夹名称放入其中。你可以放任意多.gitignore文件将如下所示/FolderName
打开App,查看更多内容
随时随地看视频慕课网APP