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

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


当前回答

我在Ubuntu上也有同样的问题,我从终端创建了.gitignore,它对我很有用

touch.gitignore

其他回答

我的问题是(正如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.

我也有同样的问题。我认为问题是CR与CR+LF之间的差异。我使用CMD(在Windows 7上)和以下命令将这些东西存储在.gitignore中:

Bad:

echo "file_to_be_ignored.py" >> .gitignore<br>
echo "*~" >> .gitignore

Etc.

问题是,该命令没有为Git放置正确的行尾标记,以识别换行符(当Git需要另一行时,可以是CR或CR+LF)。我通过手动替换Vim中的每一个换行符来解决了这个问题(Vim来拯救!),它工作得很好。

尝试在Notepad++或Vim中编辑.gitignore(理想情况下)。即使文件看起来格式正确,也尝试替换换行符。我知道,这听起来很奇怪,但它对我有用

我遇到了这个问题,一个.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/来解决这个问题。

固定的好的,我在Windows上的记事本中创建了.gitignore文件,但它不起作用。当我在Linux上查看.gitignore文件时,它看起来像是有组织的胡言乱语——也许记事本写的是Unicode,而不是ASCII或任何8位。

所以我在我的Linux盒子上重写了这个文件,当我把它拉回到Windows时,它工作得很好!万岁!

我刚刚遇到这个问题。gitignore文件中的内容继续出现在未跟踪文件列表中。

我用这个来创建忽略文件:

echo "node_modules" > .gitignore

事实证明,双引号导致了我的问题。我删除了忽略文件,然后再次使用了不带引号的命令,结果如预期。我不需要搞乱文件编码。我在使用Cmder的Windows 10机器上。

例子:

echo node_modules > .gitignore