39

我在“.gitignore”文件中添加了几个 Git 文件夹。它们包含超过 100k 个文件。主要是图像、tmp 和缓存的东西。我需要的是能够提交对我的代码的更改,而无需提交这些文件夹中发生的事情。

我认为将它们添加到“.gitignore”中可以解决问题,但由于某种原因它根本不起作用。几天内我无法向 repo 提交任何内容,因为每次我尝试 push 命令时,它都会尝试发送 100k 个文件,然后它会冻结并超时。

root@serveur [/home/***/***]# git push origin master
Password:
Counting objects: 110300, done.

如何在考虑忽略的文件夹的同时强制 Git 重新索引树,以便最终提交对代码所做的所有更改?

4

1 回答 1

92

它不起作用的原因是(可能)因为您在添加之前添加了其中一些文件.gitignore- 所以您必须在它们被忽略之前将它们从 git 中删除。

来源:https ://stackoverflow.com/a/1139797/2128691

首先,提交任何未完成的代码更改,然后运行以下命令:

git rm -r --cached .

这会从index中删除所有内容,然后运行:

git add .

提交它:

git commit -m ".gitignore is now working"
于 2013-08-24T12:48:34.680 回答