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的目录。

它应该位于项目的根目录中:

./myproject/.gitignore

不在

./myproject/.git/.gitignore

其他回答

我的30美分把戏:

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

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

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

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

我也有同样的问题。我认为问题是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(理想情况下)。即使文件看起来格式正确,也尝试替换换行符。我知道,这听起来很奇怪,但它对我有用

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

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

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

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

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

如果您是Notepad++用户,请尝试执行以下操作:

使用Notepad++打开.gitignore文件,然后执行以下操作:

菜单编辑→ EOL转换→ Windows格式→ 拯救

再次尝试使用gitstatus,看看它是否适合您。

我在这里发布了类似问题的答案。