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文本复制到exclude.txt文件中,该文件位于

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

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

其他回答

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

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

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

我看到你们中的一些人已经回答了这个问题,但我不知道是否说得很清楚。

在我的案例中,问题出现的原因是使用echo命令创建.gitignore文件,导致文件编码被更改。

为了解决我必须打开文本文件的问题,请单击另存为并将底部选项卡中的编码更改为UTF-8。

当我使用touch命令创建文件并通过文本编辑器编辑其内容时,问题没有发生。

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

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

我在Windows中的PowerShell中使用echo“…”>.gitignore创建了.gitignor,因为它不允许我在Windows资源管理器中创建它。

在我的案例中,问题是创建的文件的编码,在我将其更改为ANSI后,问题得到了解决。

特别适用于Windows用户:如果您有未跟踪的文件,并且无法清除/删除缓存的文件。尝试打开PowerShell并将.gitignore文件转换为UTF-8编码:

$Myfile = Get-Content .\.gitignore`
$Myfile | Out-File -Encoding "UTF8" .gitignore

您只需要这样做一次,就可以对该目录的.gitignore文件进行编码,并且由于该文件随后被正确编码,因此无论您将来何时编辑该文件,它都会正常工作。我认为这是由于GitHub无法读取.gitignore文件的非UTF-8编码而出现的问题。据我所知,Windows尚未解决此问题。这没什么大不了的,只是当它不工作时调试起来很痛苦。