我想从存储库中删除文件。
git rm file_to_remove.txt
将从存储库中删除文件,但也将从本地文件系统中删除文件。如何从回购中删除此文件而不删除文件的本地副本?
我想从存储库中删除文件。
git rm file_to_remove.txt
将从存储库中删除文件,但也将从本地文件系统中删除文件。如何从回购中删除此文件而不删除文件的本地副本?
当前回答
如果您只想取消跟踪文件而不从本地和远程存储库中删除,请使用以下命令:
git update-index --assume-unchanged file_name_with_path
其他回答
git rm文档说明:
当给定--cached时,暂存内容必须与分支的尖端或磁盘上的文件相匹配,从而允许仅从索引中删除文件。
因此,对于单个文件:
git rm --cached file_to_remove.txt
对于单个目录:
git rm --cached -r directory_to_remove
由于rm--cache将删除远程存储库中的文件,因此可以改用更新索引参见:https://learn.microsoft.com/en-us/azure/devops/repos/git/ignore-files?view=azure-devops&tabs=visual-studio-2019
此外,如果您提交了敏感数据(例如包含密码的文件),则应将其从存储库的历史记录中完全删除。这里有一个指导说明如何做到这一点:http://help.github.com/remove-sensitive-data/
根据我的回答:https://stackoverflow.com/questions/6313126/how-to-remove-a-directory-in-my-github-repository
要仅从git存储库而不是本地删除文件夹/目录或文件,请尝试3个简单步骤。
删除目录的步骤
git rm -r --cached File-or-FolderName
git commit -m "Removed folder from repository"
git push origin master
在下次提交时忽略该文件夹的步骤
要在下次提交时忽略该文件夹,请在根目录中创建一个名为.gitignore的文件并将文件夹名称放入其中。您可以放入任意数量的文件夹
.gitignore文件将如下所示
/FolderName
更通用的解决方案:
编辑.gitignore文件。echo mylogfile.log>>.git忽略从索引中删除所有项。git rm-r-f--缓存。重建索引。git添加。进行新提交gitcommit-m“已删除mylogfile.log”