停止在git中跟踪文件 - 无需在本地或拉取时删除它

时间:2014-08-04 16:33:01

标签: git gitignore

我想忽略以前跟踪过的文件/目录树 - 永远忽略它但将 删除 - 只需将其忽略存储库拉动发生了。这可能吗 ?为什么不(如果没有)?我该怎么办?

注意:Remove a file from a Git repository without deleting it from the local filesystem中接受的答案 - 即git rm --cached path - 将导致文件被删除。讨厌。不仅如此,“如果您在删除之前查看修订版本,那么它将删除您的文件,然后在删除后查看修订版本”(请参阅​​此comment)有关其他有趣的评论/答案,请参阅此问题但是不要解决我的问题。

我完全知道--assume-unchanged标志,但这不是我想要的 - 我想告诉git(和所有存储库克隆)“嘿,停止跟踪这个文件/树”但不是“删除这个文件/树“ - 所以我想全局--assume-unchanged。如果不可能(为什么?)我需要一个workaround

对于记录我试图引导git使用它来保存/共享历史记录,我希望能够随意停止跟踪文件/目录 - 而不删除它们

相关:

2 个答案:

答案 0 :(得分:2)

我有同样的问题,我使用git rm --cached <file>并且它在本地工作但是一旦我推送到远程服务器它也删除了文件,我不想那样。然后我找到了git { {1}}它忽略了本地更改,并且不会将其从远程服务器中删除,就像魅力一样!

答案 1 :(得分:1)

这是不可能的。要防止跟踪新更改,您需要从存储库中删除该文件(使用git rmgit rm --cached)。此添加对删除文件的提交的更改。当该更改随后应用于其他存储库时,将执行删除操作,从而导致文件被删除。