2013-03-20 155 views
1

我有一个标准的.gitignore文件,我将其包含在每个项目中。其中一条线忽略了“bin”。.gitignore仍然忽略删除的项目

恰巧,在这个特定的项目中,我其实想要一个/ bin目录。我从.gitignore中删除了“bin”,但git仍然不会让我添加/ bin目录。它仍然认为它应该忽略它,即使该字符串已从.gitignore中删除。

我找到的所有答案都是关于如何忽略以前提交的内容,但是我没有找到关于如何添加以前忽略的内容的任何信息。

所以:我该如何告诉git取消以前忽略的某些内容?

+0

是否有你什么/ bin目录? – pktangyue 2013-03-20 07:57:41

+0

是的,/ bin中的文件 – 2013-03-20 08:29:24

回答

2
  • 确保您的.gitignore不忽略bin目录了。要确认您可以从回购站的根目录运行git ls-files . --ignored --exclude-standard --others以列出git忽略的所有文件。

  • 另一种方式做同样的事情,如果你尝试添加使用git addbin目录,而不给人一种-f说法,混帐会抱怨这些文件目前正在忽略。如果你确实看到这个消息,你仍然有一个.gitignore的地方,这似乎会导致git忽略bin目录。

  • 另外请记住,git不版本空目录。您需要在git目录下至少有一个文件才能在版本控制下进行跟踪。在这种情况下,在bin目录下创建一个虚拟文件,该文件说git add bin/.dummy。这样你就可以确保bin目录是在克隆或结帐时创建的。根据您的意见

UPDATE

  • 该文件的.gitignore可以在仓库多个目录存在于包括或排除不同的目录级别的规则。从您的回购的根目录下,运行find . -type f -name .gitignore以查看您的回购中是否有其他gitignore文件。

也有使用以下的git的配置选项来指定gitingore一个全球性的方式,检查,看看是否在您的设置存在这样的配置:

git config --global --get core.excludesfile 
+0

嗯。很好的答案。不幸的是,这些建议都没有提出。我不知道通过git config的全局gitignore。看起来像一个可能的解决方案,但事实证明,“bin”不在那里。 git ls-files建议没有任何返回。 bin目录中有文件。项目中只有一个gitignore。 – 2013-03-20 09:05:42

+0

@WarrenBenedetto - 除了查看'.git/info/exclude'之外,你可能还想看看下面两个配置选项'git config --get --local core.excludesfile'和'git config --get - -global core.excludesfile'来查看是否有其他文件被用作gitignore文件。 – Tuxdude 2013-03-21 04:00:40

+0

我想通了。我已经从.gitignore中删除了bin,但直到现在我才注意到[Bb]。这解释了它。谢谢你的帮助! – 2013-03-21 04:56:17

0

注意太确定你的意思是'忽略'它。你的意思是当你输入'git status'bin /目录不会显示为未跟踪或修改?

尝试明确地将其添加到git也许?

git add bin/ 
git commit -m "Adding the bin directory" 
+0

$ git add bin/ 您的某个.gitignore文件会忽略以下路径: bin 如果您确实想要添加它们,请使用-f。 fatal:没有添加文件 – 2013-03-20 08:27:00

+0

使用-f作品,但我仍然好奇它为什么认为'bin'在.gitignore中被删除。觉得应该有一些命令来重新加载/刷新.gitignore什么的,但我没有看到类似的东西。 – 2013-03-20 08:28:19

+0

https://help.github.com/articles/ignoring-files有一些有用的信息。我建议你看看你的全局忽略文件。 – 2013-03-20 08:37:56

1

最有可能你有一个全球GIT中忽略文件 - 通常在~/.gitignore。您可以检查这跟:

-> git config core.excludesfile  
/home/andy/.gitignore 

您可以反无视规则,或者最简单的解决方法就是增加的bin文件,并继续前进:

git add -f bin 
git commit -m "Adding my bin files" 
+0

全局gitignore是使用全局配置选项'core.excludesfile'获得的,也可以是除'〜/ .gitignore'外的其他任何东西;) – Tuxdude 2013-03-20 08:39:13

+1

我只是想指出一个更正。你的答案的第一个版本(在编辑之前)没有提及任何关于'core.excludesfile'的内容。但现在没关系,因为你已经将这部分添加到了你的答案中。 – Tuxdude 2013-03-20 08:50:31