我的.gitignore
文件似乎已被 Git 忽略.gitignore
文件是否已损坏? Git 需要哪种文件格式,语言环境或文化?
我的.gitignore
:
# This is a comment
debug.log
nbproject/
从git status
输出:
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# debug.log
# nbproject/
nothing added to commit but untracked files present (use "git add" to track)
我希望debug.log
和nbproject/
不会出现在未跟踪的文件列表中。
我应该从哪里着手解决此问题?
即使到目前为止您尚未跟踪文件,即使将它们添加到.gitignore
,Git 似乎也能够 “知道” 它们。
注意:首先提交您当前的更改,否则您将丢失它们。
然后从 Git 存储库的顶部文件夹中运行以下命令:
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
如果 Git 似乎没有注意到您对.gitignore
文件所做的更改,则可能需要检查以下几点:
.gitignore
文件,该文件可能会干扰您的本地文件将某些内容添加到. gitignore 文件时,请尝试以下操作:
git add [uncommitted changes you want to keep] && git commit
git rm -r --cached .
git add .
git commit -m "fixed untracked files"
如果您从. gitignore 文件中删除了某些内容,并且上述步骤可能不起作用,如果您发现上述步骤不起作用,请尝试以下操作 :
git add -f [files you want to track again]
git commit -m "Refresh removing files from .gitignore file."
// For example, if you want the .java type file to be tracked again,
// The command should be:
// git add -f *.java
固定。好的,我在 Windows 的记事本中创建了. gitignore 文件,但该文件无法正常工作。当我在 Linux 上查看. gitignore 文件时,它看起来像是乱七八糟的东西 - 也许记事本写出了 Unicode 而不是 ASCII 或任何 8 位。
因此,我将文件重写了 Linux 上的文件,当我将其拉回到 Windows 时,它运行良好!欢呼!
无需在项目中添加其他提交,只需一行就可以使.gitignore
正常工作:
git rm -r --cached debug.log nbproject
这会将它们从存储库中删除,但仍然保持物理状态。用简单的英语,它将删除与它们相关的任何更改历史记录,并且在以后的任何提交中都不会跟踪它们的更改。您可能会在这里找到更好的解释。
导致此问题的另一个原因是语句前的空格或制表符:
例:
# Be aware of the following:
notWorkingIgnore.*
workingIgnore.*
正如下面的评论所指出的,尾随空格也可能是一个问题:
# Be aware of the following:
notWorkingIgnore.* #<-Space
workingIgnore.*#<-Nospace
与其他解决方案一样,请首先提交,并注意您将丢失所有未提交的更改。
我得到了更好的结果:
git rm -r --cached .
git reset HEAD --hard
git status
请注意,状态现在不应包含任何已修改的文件。
就我而言,这是因为文件已存在于存储库中,而我正试图忽略它。
这些是我为解决此问题所做的事情:
到那时,我对这些文件所做的任何更改都将被忽略。
我认为您不能忽略存储库中已经存在的文件。
这里所有的答案实际上都是解决方法。您需要在运行git init
之前创建. gitignore 文件。否则git
将永远不会知道您需要忽略那些文件,因为它们已经被跟踪。
echo .idea/ >> .gitignore
git init
如果您每天进行开发,建议您将惯常的忽略文件添加到~/.gitignore_global
文件中。这样, git
将已经知道您通常忽略哪些文件(意为 “您的用户”,因为它是您的主目录中的文件)。
还要检查放置.gitignore
的目录 。
它应该在您项目的根目录中 :
./myproject/.gitignore
不在
./myproject/.git/.gitignore