Answers:
git check-ignore
使用git check-ignore
命令调试您的gitignore文件(排除文件)。
例如:
$ git check-ignore -v config.php
.gitignore:2:src config.php
上面的输出详细说明了每个给定路径名(包括行)的匹配模式(如果有)。
因此,也许您的文件扩展名不会被忽略,而是整个目录。
返回的格式为:
<source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
或使用以下命令来打印您.gitignore
的用户HOME和存储库文件夹:
cat ~/.gitignore "$(git rev-parse --show-toplevel)"/.gitignore "$(git rev-parse --show-toplevel)"/.git/info/exclude
或者使用git add -f
允许添加否则被忽略的文件。
请参阅:man gitignore
,man git-check-ignore
以获取更多详细信息。
git check-ignore [options]路径名...
git check-ignore [选项] --stdin
知道您的git配置可以包含core.excludesfile可能是一个好消息,该文件是具有其他模式被忽略的文件的路径。您可以通过运行(在有问题的git repo中)来查找是否具有这样的配置:
git config core.excludesfile
如果它显示文件路径,请查看该文件的内容以获取更多信息。
在我的情况下,我通过旧版本的boxen安装了git,而忽略了模式“ Icon?” 就我而言,这给了我这个问题中提到的有关文件夹图标的警告(我使用的是不区分大小写的文件系统,这就是为什么Icon?匹配图标的原因)。
Icon?
被该死。
检查这些:
您是否正在寻找其他.gitignore文件,因为它们可能很多。
另外,查看REPO / .git / config以查看是否有任何内容。
回购排除可以将本地每个回购规则添加到回购中的.git / info / exclude文件中。这些规则未与存储库一起提交,因此不会与其他人共享。此方法可用于您不希望其他用户生成的本地生成的文件,例如您的编辑器创建的文件。
我有同样的问题-git忽略此目录,并显示以下错误:
➭ git add app/views/admin/tags/
The following paths are ignored by one of your .gitignore files:
app/views/admin/tags
Use -f if you really want to add them.
fatal: no files added
我终于发现我的问题出在我的一行~/.gitignore_global
:
TAGS
匹配路径app/views/admin/tags
。我通过在全局gitignore文件中添加前导斜杠来解决此问题
/TAGS
git开始再次跟踪我的目录。
help
被忽略的目录。幸运的是,我很快找到了您的答案。
可以尝试的另一件事:我有一个目录B,其目录.git
库嵌套在我的项目目录A下(但不作为子模块)。我对B进行了一些更改,并希望使其成为一个真正的子模块。我相信git A会自动忽略B,因为它包含自己的存储库(请参阅嵌套的git存储库,没有子模块?)。我重命名了B文件夹,并尝试将其再次克隆为子模块,这给我带来了误导性的“被.gitignore忽略”错误消息。解决的办法是.git
从B中删除 。
我遇到了和你完全一样的问题。您得到的唯一答复列出了一些要检查的地方,但没有一个为我解决问题,从您的评论中我也不会为您考虑。我没有其他.gitignore文件隐藏在目录树中的较低位置;.git / config中没有任何内容;.git / ingore / exclude中没有任何内容
如果仍然有问题,请检查此答案。它为我解决了这个问题
基本上,检查〜/ .gitignore文件。我的被称为〜/ .gitignore_global。我不知道它是什么时候创建的(我当然没有做到),但是我第一次安装时尝试了很多不同的git设置,所以其中一个必须放在那里。
希望他的回答对您有帮助!
从git收到此错误消息的另一个原因是在执行git submodule add
命令时前一个git命令崩溃并离开了锁定文件(例如,当您使用包含git命令的自定义脚本并且没有注意到崩溃)。
如果git commit
改为执行命令,则没有任何条件发生变化(git submodule add
将继续大喊.gitignore
文件归咎于您),您将看到另一个错误报告:
$ git commit -a
fatal: Unable to create '..../.git/index.lock': File exists.
If no other git process is currently running, this probably means a
git process crashed in this repository earlier. Make sure no other git
process is running and remove the file manually to continue.
并确实删除了锁定文件:
rm .git/index.lock
解决了问题。(这发生在git版本2.1.0.9736上。它可能会在将来的git版本中修复。)
检查您是否拥有该文件夹的权限。我刚遇到这个问题,这是因为该文件夹归www-data用户所有,而不是我作为登录终端所拥有的用户。