1

我似乎无法弄清楚为什么我的 .gitignore 没有忽略一个简单的文本文件。我已经阅读了手册,并且我认为我已经完成了所有必需的步骤。

首先,我创建了一个这样的新仓库:

C:\> mkdir test
C:\> cd test
C:\test> git init

然后我创建并提交了一个 .gitignore ,它忽略了一个名为 junk.txt 的文件

C:\test [master]> touch .gitignore
C:\test [master +1 ~0 -0 !]> echo 'junk.txt' >> .gitignore
C:\test [master +1 ~0 -0 !]> git add .gitignore
C:\test [master +1 ~0 -0]> git commit -m 'ignoring junk.txt'

现在我假设如果我有一个名为 junk.txt 的文件,git 会忽略它。但是为什么它仍然说是一个未跟踪的文件?

C:\test [master]> touch junk.txt
C:\test [master +1 ~0 -0 !]> git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#       junk.txt

我正在使用 msysgit

C:\test [master +1 ~0 -0 !]> git --version
git version 1.8.0.msysgit.0
4

1 回答 1

0

Gerrytan,您在不使用 bash 语法的系统上使用 bash 语法。

具体来说,当您执行以下操作时:

echo 'junk.txt' >> .gitignore

你已经告诉 git 忽略文件 'junk.txt'包括引号。

如果您使用过 bash 或任何与 sh 兼容的 shell,那么该命令会告诉 git 忽略不包括引号的 'junk.txt',因为在这些 shell 中,引号表示单词边界,但它们没有特殊含义在 cmd.exe(Windows 中的标准命令行)中的含义。

我建议您在编辑器中打开 .gitignore 并查看条目。

于 2013-04-12T03:30:12.257 回答