.gitignore排除特定文件

时间:2015-05-14 01:31:05

标签: git gitignore

我正在尝试使用String val = "admin"; if (val == "admin") { //code here }else{ //code here } 文件排除位于.gitignore文件夹中的templates.js。我的public/app/文件如下所示:

.gitignore

但是当我登录Git Gui时,/vendor /node_modules composer.phar composer.lock .DS_Store templates.js 文件仍会显示在其中。如何使用templates.js

专门排除文件

4 个答案:

答案 0 :(得分:83)

与名称"忽略"相反。可能会建议。只有在.gitignore个文件时才会查询git add:换句话说,根据.gitignore,不会排除已添加到(索引)存储库的文件。

首先,您最好修改.gitignore,以便不再添加该文件。将以下行添加到.gitignore文件中:

public/app/template.js

接下来,您需要从存储库中排除该文件。您可能不想从文件系统中删除文件,这可以通过以下方式完成:

git rm --cached public/app/template.js

--cached标志可确保不会从文件系统中删除该文件。 (如果不重要,可以使用git rm public/app/template.js,但这会删除文件。)

背景

未主动使用.gitignore的原因是因为您有时可能想要覆盖.gitignore。比如说,您不想跟踪*.log个文件,您可以在*.log中指定.gitignore。但是,如果您要跟踪特定的一个,则可以添加git add -f some.log-f标记强制git添加文件。

答案 1 :(得分:14)

一旦文件被添加'一旦到git存储库,它将继续被跟踪,无论它是否列在.gitignore文件中。

我猜你之前添加了template.js文件,在这种情况下,它会继续跟踪更改,直到您从存储库中删除它。从存储库中删除文件后,将通过.gitignore文件正确忽略该文件。

从git存储库(命令行)中删除文件而不删除它的方法是

git rm --cached FILENAME

然后,一旦你这样做并尝试使用你的gitignore中的文件提交,它就不会这样做。

请注意,如果您专门添加gitignore中的文件,则手动添加文件将覆盖gitignore。

答案 2 :(得分:9)

如果您已经在跟踪文件(git addgit commit),.gitignore无效。

我相信你想要的是停止跟踪文件,然后使用.gitignore来排除它。要停止跟踪文件但保留文件,请使用:

git rm --cached <file>

答案 3 :(得分:4)

在这种情况下,您可以停止使用

跟踪templates.js
git rm --cached public/app/templates.js

正如其他人所解释的那样,.gitignore只会忽略要添加的内容。例如,如果您经常在git add .中使用templates.js并拥有.gitignore,那么git就不会添加它。