我正在尝试使用.gitignore文件来排除templates.js位于public/app/文件夹中.我的.gitignore文件看起来像这样:
/vendor
/node_modules
composer.phar
composer.lock
.DS_Store
templates.js
Run Code Online (Sandbox Code Playgroud)
但是当我检查Git Gui时,templates.js文件仍显示在其中.如何使用.gitignore?专门排除文件?
Wil*_*sem 111
与"忽略"这个名称的含义相反..gitignore只有在您的git add文件时才会查询:换句话说,已经添加到(索引)存储库的文件不会被排除在外.gitignore.
首先,您最好修改.gitignore不再添加文件.将以下行添加到.gitignore文件中:
public/app/template.js
Run Code Online (Sandbox Code Playgroud)
接下来,您需要从存储库中排除该文件.您可能不希望从文件系统中删除该文件,这可以通过以下方式完成:
git rm --cached public/app/template.js
Run Code Online (Sandbox Code Playgroud)
该--cached标志确保不会从文件系统中删除该文件.(如果不重要,可以使用git rm public/app/template.js,但这会删除文件).
原因.gitignore是没有主动使用是因为你有时可能想要覆盖.gitignore.比如说你不想跟踪*.log文件,你可以*.log在中指定.gitignore.但如果您想要跟踪特定的一个,则可以添加git add -f some.log.该-f标志强制git添加的文件.
BTo*_*TKD 14
一旦文件被"添加"到git存储库一次,它将继续被跟踪,无论它是否列在.gitignore文件中.
我猜你之前添加了template.js文件,在这种情况下它会继续跟踪更改,直到你从存储库中删除它.从存储库中删除文件后,将通过.gitignore文件正确忽略该文件.
从git存储库(命令行)中删除文件而不删除它的方法是
git rm --cached FILENAME
Run Code Online (Sandbox Code Playgroud)
然后,一旦你这样做并尝试使用你的gitignore中的文件提交,它就不会这样做.
请注意,如果您专门添加gitignore中的文件,则手动添加文件将覆盖gitignore.
ins*_*bra 10
在这种情况下,你可以停止跟踪templates.js与
git rm --cached public/app/templates.js
Run Code Online (Sandbox Code Playgroud)
正如其他人所解释的,.gitignore只忽略要添加的内容。例如,如果您经常使用git add .并templates.js在您的.gitignore.git 中添加它,则 git 不会添加它。
如果您已经在跟踪文件(git add在其上git commit),.gitignore则无济于事.
我相信你想要的是停止跟踪文件,然后用.gitignore它来排除它.要停止跟踪文件但保留文件,请使用:
git rm --cached <file>