所以,我很确定我做错了什么,但我能意识到这一点。
我的 .gitignore :{ content/data.db }
当我更改此文档并执行git status
时,我得到:
Changes not staged for commit:
(use "git add/rm <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
deleted: content/data.db
预期结果:不跟踪此文件。
当然,如果我git add -A && git commit -m"this is a test" && git push
,文件会被推送到回购站。
我不知道.gitignore
的错误。
提前致谢。
答案 0 :(得分:2)
你需要解开文件,然后git会很乐意使用.gitignore
中的模式忽略它。如果已经跟踪了某个文件,即使它在ignorelist中,也不会忽略对它的更改。从当前状态来看,很明显您已从文件系统中删除了该文件,但尚未取消删除。
所以,运行以下命令:
git rm --cached content/data.db
git commit -m "removed db file"
通常,最好使用git rm
标志运行--cached
命令,以便不删除文件的本地副本。
因为,在您的情况下,您已经从文件系统中删除了有问题的文件,git rm content/data.db
也可以正常工作。
<强> 修改 强>
如下面的评论所述,请检查您的.gitignore
是否将该条目设为{ content/data.db }
。因为{
和空格的条目会变得不正确。
只需一行,content/data.db
中包含文字.gitignore
。确保忽略规则之前或之后没有冗余空格。
git的工作方式,.gitignore
中的每个完整行都被视为fnmatch
的模式,任何多余的字符,如空格甚至以#
开头的注释都会改变模式本身,导致文件不被忽略。