所以我希望一堆文件不受攻击并且不被Git改变。如果我将它们添加到gitignore,那就不会追溯删除它们。如果我通过this method删除它们,它们会从所有提交中消失,但它们实际上也会从我当前的工作副本中消失。我仍然需要这些文件,我只是不需要Git跟踪它们。
任何方式都可以删除文件,就好像它们一直存在但不属于Git"域"?
出于某种原因,删除文件的任何常用方法都会使repo仍然一样大(~2.9GB),如果它只包含我的特定代码,它最多应该是几MB。
固定!!更改配置文件中的内存设置允许我执行git gc,这是this page中列出的过程的一部分。我使用的设置是:
threads = 1
deltaCacheSize = 128m
windowMemory = 50m
答案 0 :(得分:1)
git rm -r --cached .
git add -A
git commit -am 'Removing ignored files'
第一个命令将取消跟踪git存储库中的所有文件。 git rm -r - 缓存因缓存此文件将出现在您的本地工作副本中,并将从repo中删除。
第二个命令将添加git存储库中的所有文件,但与.gitignore中的规则匹配的文件除外。因此,我们只用两个命令来跟踪几个文件。
然后最后一个命令是提交更改,这将只是删除文件。 另一种替代解决方案是
//untrack committed files
git update–index –assume-unchanged fileName
此链接将帮助您了解具体方法 Untrack files from git
答案 1 :(得分:0)
要让git停止跟踪已添加的文件,您必须从索引中删除该文件,
git rm --cached <file-path>
git commit
将文件添加到.gitignore
并再次提交。 Git将不再跟踪该文件。