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客户端的几个实例同时运行。例如,“git shell”+“GitHub Desktop”等。


这发生在我身上。我使用“GitHub Desktop”作为主客户端,它忽略了一些新的。gitignore设置:提交后提交:

你犯了什么。接下来,提交:它忽略.gitignore设置。提交包括.gitignore中提到的许多临时文件。清除Git缓存;检查.gitignore是否为UTF-8;删除文件→ 犯罪→ 将文件移回;跳过一次提交–没有任何帮助。

原因:Visual Studio代码编辑器是在后台使用同一个打开的存储库运行的。Visual Studio Code内置了Git控件,这会导致一些冲突。

解决方案:仔细检查多个隐藏的Git客户端,一次只能使用一个Git客户端(尤其是在清除Git缓存时)。

其他回答

如果Git似乎没有注意到您对.gitignore文件所做的更改,您可能需要检查以下几点:

可能有一个全局.gitignore文件会干扰您的本地文件当您向.gitignore文件中添加内容时,请尝试以下操作:git add[要保留的未提交更改]和git commitgit rm-r--缓存。git添加。gitcommit-m“修复了未跟踪的文件”如果您从.gitignore文件中删除了一些内容,并且上面的步骤可能不起作用,如果您发现上面的步骤不起作用的话,请尝试以下操作:gitadd-f[要再次跟踪的文件]gitcommit-m“刷新从.gitignore文件中删除文件。”//例如,如果希望再次跟踪.java类型文件,//命令应为://git-add-f*.java

另一个可能的原因是Git客户端的几个实例同时运行。例如,“git shell”+“GitHub Desktop”等。


这发生在我身上。我使用“GitHub Desktop”作为主客户端,它忽略了一些新的。gitignore设置:提交后提交:

你犯了什么。接下来,提交:它忽略.gitignore设置。提交包括.gitignore中提到的许多临时文件。清除Git缓存;检查.gitignore是否为UTF-8;删除文件→ 犯罪→ 将文件移回;跳过一次提交–没有任何帮助。

原因:Visual Studio代码编辑器是在后台使用同一个打开的存储库运行的。Visual Studio Code内置了Git控件,这会导致一些冲突。

解决方案:仔细检查多个隐藏的Git客户端,一次只能使用一个Git客户端(尤其是在清除Git缓存时)。

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

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

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


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

我的30美分把戏:

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

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

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

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

固定的好的,我在Windows上的记事本中创建了.gitignore文件,但它不起作用。当我在Linux上查看.gitignore文件时,它看起来像是有组织的胡言乱语——也许记事本写的是Unicode,而不是ASCII或任何8位。

所以我在我的Linux盒子上重写了这个文件,当我把它拉回到Windows时,它工作得很好!万岁!