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

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


当前回答

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

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

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

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

其他回答

gitignore还有一个问题可能会发生,特别是对于Windows用户。Git不喜欢你命名.gitignore(例如unity.gitignore)。

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

我的没有工作,因为我确实创建了一个名为.gitignore的文本文档

相反,创建一个文本文档,在Notepad++中打开它,然后另存为.gitignore

保存时,确保从下拉列表中选择所有类型(*.*)。


或者在gitbash中,只需使用touch.gitignore

对我来说,这又是一个问题。我的.gitignore文件被设置为忽略除我告诉它不要忽略的内容之外的所有内容。像这样:

/*
!/content/

现在这显然意味着我也在告诉Git忽略.gitignore文件本身。只要我没有跟踪.gitignore文件,这就不是问题。但在某个时刻,我提交了.gitignore文件本身。这导致.gitignore文件被正确忽略。

因此,再增加一行就解决了这个问题:

/*
!/content/
!.gitignore

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

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

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

每当我遇到git正在跟踪.gitignore中列出的文件的情况时,我会使用以下方法:

git update-index --skip-worktree <file_name>