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

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


当前回答

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

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

"db.sqlite3"
"tdd_venv/"

这很好:

/db.sqlite3
/tdd_venv/

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

其他回答

即使到目前为止你还没有跟踪这些文件,Git似乎也可以在你将它们添加到.gitignore之后“知道”它们。

警告:首先提交或隐藏当前更改,否则您将丢失它们。

然后从Git存储库的顶部文件夹运行以下命令:

git rm -r --cached .
git add .
git commit -m "fixed untracked files"

我也有同样的问题。我认为问题是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还有一个问题可能会发生,特别是对于Windows用户。Git不喜欢你命名.gitignore(例如unity.gitignore)。

您希望始终将其命名为.gitignore,或者在Windows上命名为.git ignore,因为Windows认为您正在尝试重命名它而不使用文件名。

PhpStorm(可能还有其他一些IDE用户),在我的案例中,问题是我通过查找器在项目外部创建并添加了文件。

我删除了那个文件,并在PhpStorm项目中重新创建了相同的文件,右键单击->新建->文件,它立即工作。

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

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

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