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

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


当前回答

我的没有工作,因为我确实创建了一个名为.gitignore的文本文档

相反,创建一个文本文档,在Notepad++中打开它,然后另存为.gitignore

保存时,确保从下拉列表中选择所有类型(*.*)。


或者在gitbash中,只需使用touch.gitignore

其他回答

我注意到.gitignore的编码产生了影响——如果文件是Unicode,它会被忽略,如果是ASCII,它不会被忽略。

流程:

验证状态:PS>git状态创建一个函数以获取文件编码Test.gitignore的编码:PS>Get-FileEncoding.gitignor将编码更改为ASCII:PS>Set-Content.gitignore-encoding ASCII-Value(Get-Content.gitignore)确认:PS>git状态

我的问题是(正如OP所建议的)一个损坏的.gitignore文件。我不相信这是真的,并忽略了这种可能性,直到其他一切都失败了。vi中没有显示损坏,但文件开头有两个字节导致.gitignore文件被忽略。对我来说,这些只有在我键入cat.gitignore时才会出现,它显示:

��# Built application files
*.apk
*.ap_

# ...

我不知道这些结果是如何出现的,但重新创建文件解决了问题。损坏文件的十六进制分析显示如下:

user@dev ~/project/myproject $ xxd -b .gitignore
00000000: 11111111 11111110 00100011 00000000 00100000 00000000  ..#. .
00000006: 01000010 00000000 01110101 00000000 01101001 00000000  B.u.i.

还有一点需要注意:您是否使用正确的行结尾保存.gitignore文件?

窗户:

如果您在Windows上使用它,是否使用Windows行结尾保存它?并非所有程序都会默认执行此操作;Notepad++和许多PHP编辑器默认使用Linux行结尾,因此文件将与服务器兼容。检查此项的一个简单方法是在Windows记事本中打开文件。如果所有内容都显示在一行,则文件以Linux行结尾保存。

Linux:

如果文件在Linux环境中工作时遇到问题,请在Emacs或nano等编辑器中打开该文件。如果您看到任何不可打印的字符,则文件以Windows行结尾保存。

这听起来可能很傻,但解决了我的问题的是意识到.gitignore工作正常,即使它在gitstatus上显示deleted:yourfile。

我打算忽略一个错误日志文件,忽略我造成的任何错误,但要保存其他开发人员造成的错误,以防有一天他们在调试一个奇怪的问题时派上用场。然而,git不允许您“忽略”同时保存文件。

我想让它“及时冻结”,但git说它要么被跟踪,要么根本不允许它在那里。

如果Git似乎没有注意到您对.gitignore文件所做的更改,您可能需要检查以下几点:

可能有一个全局.gitignore文件会干扰您的本地文件当您向.gitignore文件中添加内容时,请尝试以下操作:git add[要保留的未提交更改]和git commitgit rm-r--缓存。git添加。gitcommit-m“修复了未跟踪的文件”如果您从.gitignore文件中删除了一些内容,并且上面的步骤可能不起作用,如果您发现上面的步骤不起作用的话,请尝试以下操作:gitadd-f[要再次跟踪的文件]gitcommit-m“刷新从.gitignore文件中删除文件。”//例如,如果希望再次跟踪.java类型文件,//命令应为://git-add-f*.java