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似乎也可以在你将它们添加到.gitignore之后“知道”它们。

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

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

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

其他回答

这听起来可能很傻,但解决了我的问题的是意识到.gitignore工作正常,即使它在gitstatus上显示deleted:yourfile。

我打算忽略一个错误日志文件,忽略我造成的任何错误,但要保存其他开发人员造成的错误,以防有一天他们在调试一个奇怪的问题时派上用场。然而,git不允许您“忽略”同时保存文件。

我想让它“及时冻结”,但git说它要么被跟踪,要么根本不允许它在那里。

和其他解决方案一样,首先提交,并注意您将丢失任何未提交的更改。

我有更好的结果:

git rm -r --cached .
git reset HEAD --hard
git status

请注意,状态现在不应该有任何修改过的文件。

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


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

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

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

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

我在Ubuntu上也有同样的问题,我从终端创建了.gitignore,它对我很有用

touch.gitignore

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

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