我试图使用 .gitignore文件排除位于 public/app/文件夹中的 templates.js。我的 .gitignore文件如下:
.gitignore
public/app/
templates.js
/vendor /node_modules composer.phar composer.lock .DS_Store templates.js
但是,当我检查在 Git 鬼,templates.js文件仍然显示在它。如何使用 .gitignore专门排除文件?
一旦一个文件被“添加”到 git 存储库中一次,就会继续跟踪它,而不管它是否在。吉蒂诺档案。
我猜您之前已经添加了 template.js 文件,在这种情况下,它将继续跟踪更改,直到您将其从存储库中删除。文件从存储库中删除后,将通过。吉蒂诺档案。
从 git 存储库(命令行)删除文件而不删除它的方法是
git rm --cached FILENAME
然后,一旦你这样做,并试图提交与文件在您的吉蒂诺尔,它不会这样做。
请注意,如果您专门添加了一个在 gitignore 中的文件,则手动添加该文件将覆盖 gitignore。
与“忽略”这个名字的含义相反。只有当您使用 git add文件时才会查询 .gitignore: 换句话说,已经添加到(该)存储库的索引中的文件不会基于 .gitignore被排除在外。
git add
首先,您最好修改 .gitignore,以便不再添加该文件。在 .gitignore文件中添加以下代码行:
public/app/template.js
接下来需要从存储库中排除该文件。也许你的 不想删除文件从你的文件系统,这可以做到:
git rm --cached public/app/template.js
--cached标志确保文件不会从您的文件系统中删除。(如果不重要,可以使用 git rm public/app/template.js,但这会删除文件)。
--cached
git rm public/app/template.js
未主动使用 .gitignore的原因是您有时可能希望重写 .gitignore。例如,您不想跟踪 *.log文件,可以在 .gitignore中指定 *.log。但是,如果有一个特定的,你想跟踪你可以添加 git add -f some.log。-f标志强制 git添加文件。
*.log
git add -f some.log
-f
git
如果您已经在跟踪一个文件(git add和 git commit) ,那么 .gitignore将无济于事。
git commit
我相信您想要的是停止跟踪一个文件,并且 那么使用 .gitignore来排除它。若要停止跟踪文件但保留该文件,请使用:
git rm --cached <file>
在这种情况下,您可以停止跟踪 templates.js
git rm --cached public/app/templates.js
正如其他人所解释的,.gitignore只是忽略要添加的内容。例如,如果您经常使用 git add .并且在 .gitignore中使用 templates.js,那么 git 将不会添加它。
git add .