3

我有一个标准的 .gitignore 文件,我包含在每个项目中。其中的一行忽略了“bin”。

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

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

那么:我如何告诉 git 取消忽略以前忽略的内容?

4

3 回答 3

3
  • 确保您的 .gitignore 不再忽略该bin目录。为了确认你可以git ls-files . --ignored --exclude-standard --others从你的 repo 的根目录运行来列出所有被 git 忽略的文件。

  • 另一种方法是,如果您尝试使用提供参数添加bin目录,git 会抱怨文件当前被忽略。如果您确实看到此消息,那么您仍然有一个地方似乎导致 git 忽略该目录。git add -f.gitignorebin

  • 还要记住,git 不会对空目录进行版本控制。您需要在目录下至少有一个文件,以便 git 在版本控制下跟踪它。在这种情况下,在目录下创建一个虚拟文件bin,该文件说git add bin/.dummy. 这样,您可以确保bin在克隆或签出时创建目录。

根据您的评论更新:

  • .gitignore 文件可以存在于存储库中的多个目录中,以包含或排除不同目录级别的规则。从 repo 的根目录运行find . -type f -name .gitignore以查看 repo 中是否有任何其他 gitignore 文件。

还有一种使用以下 git 配置选项指定 gitingore 的全局方法,检查您的设置中是否存在这样的配置:

git config --global --get core.excludesfile
于 2013-03-20T08:31:14.690 回答
2

很可能您有一个全局 git 忽略文件 -~/.gitignore通常。您可以通过以下方式检查:

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

您可以反转忽略规则,或者最简单的解决方案是添加 bin 文件并继续:

git add -f bin
git commit -m "Adding my bin files"
于 2013-03-20T08:36:31.103 回答
0

请注意,您的意思仍然是“忽略”它。您的意思是当您键入“git status”时,bin/ 目录不会显示为未跟踪或已修改?

尝试将其显式添加到 git 中?

git add bin/
git commit -m "Adding the bin directory"
于 2013-03-20T07:55:43.077 回答