为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

Git
墨色风雨 2020-02-03 14:03:00
我提交并推送了一些目录到github。在那之后,我修改了.gitignore文件,添加了应该忽略的目录。一切正常,但(现在已忽略)目录保留在github上。如何从github和存储库历史记录中删除该目录?
查看完整描述

3 回答

?
白板的微信

TA贡献1883条经验 获得超3个赞

.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的反馈; 文件仍在工作目录中。


查看完整回答
反对 回复 2020-02-03
?
12345678_0001

TA贡献1802条经验 获得超5个赞

我这样做:


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


查看完整回答
反对 回复 2020-02-03
?
慕侠2389804

TA贡献1719条经验 获得超6个赞


要仅从git存储库而不是从本地存储删除文件夹/目录,请尝试3个简单步骤。

删除目录的步骤


git rm -r --cached FolderName

git commit -m "Removed folder from repository"

git push origin master

在下次提交中忽略该文件夹的步骤


要在下次提交时忽略该文件夹,请在根目录.gitignore中创建一个文件 ,并将该文件夹名称放入其中。你可以放任意多


.gitignore文件将如下所示


/FolderName


查看完整回答
反对 回复 2020-02-03
  • 3 回答
  • 0 关注
  • 502 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信