Git似乎忽略了我的.gitignore文件-.gitignorefile是否已损坏?Git希望使用哪种文件格式、区域设置或文化?

我的.gitignore:

# This is a comment
debug.log
nbproject/

git状态的输出:

# 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/不出现在未跟踪的文件列表中。

我应该从哪里开始解决这个问题?


当前回答

我的问题是我写下了要忽略的文件,用引号“”分隔,而不是用斜线/分隔。

这不起作用,被git忽略了:

"db.sqlite3"
"tdd_venv/"

这很好:

/db.sqlite3
/tdd_venv/

我还用Notepad++检查了windows中的文件编码。编码设置为UTF-8。

其他回答

对我来说,以前的答案都没有奏效。我不得不将.gitignore文本复制到exclude.txt文件中,该文件位于

<Your-project-folder>\.git\info

完成后,刷新更改,所有未跟踪的文件都将消失。照常承诺。

您也可以使用sudo命令编辑.gitignore文件。我遇到了同样的问题,在执行命令gitstatus时,我仍然可以看到“应该被忽略”的文件。

在使用nano.gitignore而不是sudo nano.gitinore进行编辑时,我可以看到正确的反射。

PhpStorm(可能还有其他一些IDE用户),在我的案例中,问题是我通过查找器在项目外部创建并添加了文件。

我删除了那个文件,并在PhpStorm项目中重新创建了相同的文件,右键单击->新建->文件,它立即工作。

我的30美分把戏:

请清理您的目录。git clean-f(我尝试了git rm-r--cached。但它对我不起作用。)

警告:gitclean-f将删除未跟踪的文件,这意味着它们将永远消失,因为它们没有存储在存储库中。在执行此操作之前,请确保确实要删除所有未跟踪的文件。

也许你可以尝试gitclean-xdf,它可以删除被忽略的目录和未跟踪的文件

现在将HEAD带到当前位置git重置HEAD——硬。检查git状态。现在创建.gitignore,在我的情况下,它希望忽略一个名为data的文件夹。所以我写了/data/(首字母/表示文件/文件夹,后字母/仅表示文件夹)。现在执行gitadd、commit和push。

我遇到了这个问题,一个.gitignore文件包含以下行:

lib/ext/

我刚刚意识到,事实上,这个目录是指向其他文件夹的符号链接:

ls -la lib/ext/
lrwxr-xr-x 1 roipoussiere users 47 Feb  6 14:16 lib/ext -> /home/roipoussiere/real/path/to/the/lib

在lib/ext/行上,Git实际上查找一个文件夹,但符号链接是一个文件,因此我的lib文件夹不会被忽略。

我通过用.gitignore文件中的lib/ext替换lib/ext/来解决这个问题。