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

其他回答

这里有很多答案,但对我有用的并不完全是某个特定的答案,我在这里以简单的方式逐一记下所有需要完成的步骤:

预---备份回购以备不时之需。(我没有,但可能会让你觉得更安全)

确保这是您的第一次提交还是更早的提交,这些文件已被添加,因此已被缓存。如果是,则git-rm-cached。和gitadd。(不要错过点)如果仍然无法工作,请在记事本中打开文件转到文件->另存为将编码更改为ANSI。(有些答案错误地说UTF-8,但它不起作用,不必要地浪费时间)再次使用git-rm-cached。和gitadd。(不要错过点)现在做Git状态并验证我们想要的结果

这里的所有答案实际上都是变通方法。在运行gitinit之前,需要创建.gitignore文件。否则git永远不会知道你需要忽略这些文件,因为它们已经被跟踪了。

echo .idea/ >> .gitignore
git init

如果您每天都在开发,我建议您将习惯性忽略的文件添加到~/.gitignore_global文件中。这样,git就可以知道您(意思是“您的用户”,因为它是您的主目录中的文件)通常忽略的文件。

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

流程:

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

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

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

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

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

"db.sqlite3"
"tdd_venv/"

这很好:

/db.sqlite3
/tdd_venv/

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