为什么在使用git add *时.gitignore无法正常工作?

时间:2018-11-29 03:57:16

标签: git gitignore ignore

为了满足github 100Mb的要求,我运行以下命令忽略一些大文件:

$ find ./* -size +100M | cat >> .gitignore

但是当我稍后运行add *时,它仍会添加> 100MB文件来提交。

$ git add *
warning: LF will be replaced by CRLF in hw1/input/act_test.csv.
The file will have its original line endings in your working directory

如何使此gitignore工作? 预先感谢您的想法和建议。

添加: 我的目的是使add *不再跟踪大型的csv文件,以下答案似乎无效。

2 个答案:

答案 0 :(得分:3)

先前添加的文件不受此影响,以后将它们添加到gitignore。备份文件,然后在本地删除文件并提交。因此,它们不会被git跟踪。现在,将文件粘贴回原始位置,然后可以将较大的文件名添加到gitignore。现在,git将不再跟踪它们,因为它们被视为新文件。

另一种方法是使用,如@alfunx git rm --cached <file>所建议。该文件将从高速缓存(索引)中删除,一旦您提交,将不再跟踪该文件。您也可以相应地更新.gitignore,以避免进一步跟踪文件。

gitignore documentation

中详细了解
  

一个gitignore文件指定了Git故意未跟踪的文件   应该忽略。 Git已经跟踪的文件不受影响;看到   注意,了解详情。

     

[...]

     

注释

     

gitignore文件的目的是确保某些文件不   由Git跟踪的跟踪仍未跟踪。

     

要停止跟踪当前跟踪的文件,请使用git rm --cached

答案 1 :(得分:0)

与其忽略文件(通常以后会通过调用add。方法添加回文件),还有一种更好的方法来解决问题git lfs,请参见下面的用法,这将有助于将大文件推送到github。

 $git lfs install
 $git lfs track "*.csv"
 $git add .gitattributes
 $git add act_train.csv
 $git commit -m "test lfs"
 $git push

完成