Git正在忽略非';t在git中忽略

Git正在忽略非';t在git中忽略,git,gitignore,Git,Gitignore,我有一个git存储库,它忽略了图像文件和一些其他文件,但我的.gitignore文件只忽略了config.php文件。有没有我找不到的全局忽略文件?我现在必须指定要添加的文件,它给了我以下警告: 以下路径被一个.gitignore文件忽略 我的~/.gitconfig文件的内容只是我的电子邮件地址。请检查这些: 您是否查找过其他.gitignore文件,因为其中可能有很多 另外,请查看REPO/.git/config以查看是否存在任何内容 可以将Repo exclude Local per Re

我有一个git存储库,它忽略了图像文件和一些其他文件,但我的
.gitignore
文件只忽略了
config.php
文件。有没有我找不到的全局忽略文件?我现在必须指定要添加的文件,它给了我以下警告:

以下路径被一个.gitignore文件忽略


我的
~/.gitconfig
文件的内容只是我的电子邮件地址。

请检查这些:

  • 您是否查找过其他.gitignore文件,因为其中可能有很多

  • 另外,请查看REPO/.git/config以查看是否存在任何内容

  • 可以将Repo exclude Local per Repo规则添加到Repo中的.git/info/exclude文件中。这些规则未与回购协议一起提交,因此不会与其他人共享。此方法可用于本地生成的文件,您不希望其他用户生成这些文件,例如编辑器创建的文件


  • 我和你的问题完全一样。你得到的唯一回复列出了几个地方需要检查,但没有一个地方为我解决了问题,从你的评论来看,我也不认为你是对的。我没有其他的.gitignore文件隐藏在目录树的下面;git/config中没有任何内容;.git/ingore/exclude中没有任何内容

    如果仍然存在问题,请检查。它为我解决了这个问题

    基本上,检查~/.gitignore文件。我的名字叫~/.gituglobal。我不知道它是什么时候创建的(I当然没有创建),但我在第一次安装时尝试了大量不同的git设置,所以其中一个肯定是放在那里的


    希望他的回答也能帮助你

    我也遇到了同样的问题-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\u global

    TAGS
    
    它与路径
    app/views/admin/tags
    匹配。我通过在全局gitignore文件中添加一个前导斜杠来修复它

    /TAGS
    

    git再次开始跟踪我的目录。

    最好知道您的git配置可以包含core.excludesfile,它是指向具有被忽略的其他模式的文件的路径。您可以通过运行(在有问题的git repo中)来确定是否有这样的配置:

    如果它打印文件路径,请查看该文件的内容以了解更多信息


    在我的例子中,我是通过一个旧版本安装git的,它忽略了“Icon”模式,在我的例子中,这个模式给了我一个警告,在这个问题中提到了一个文件夹图标(我在一个不区分大小写的文件系统上,这就是为什么Icon?匹配图标).

    另一件事要尝试:我有一个目录B,它有自己的
    .git
    存储库嵌套在我的项目目录a下(但不是作为子模块)。我对B做了一些修改,希望它成为一个真正的子模块。我相信git A会自动忽略B,因为它包含自己的存储库(请参阅)。我重命名了B文件夹,并尝试将其再次克隆为子模块,这给我带来了误导性的“被.gitignore忽略”错误消息。解决方案是从B中删除
    .git

    从git接收此错误消息的另一个原因是在执行
    git子模块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版本中得到修复。)

    请同时检查可能由某些git客户端(例如Mac OS X上的Atlassian SourceTree)创建的
    ~/.gitignore
    ~/.gitignore\u global

    
    用于调试gitignore文件(排除文件)

    例如:

    $ git check-ignore -v config.php
    .gitignore:2:src    config.php
    
    上面的输出详细说明了每个给定路径名(包括行)的匹配模式(如果有)

    因此,可能不会忽略文件扩展名,而是忽略整个目录

    返回的格式为:

    <source> <COLON> <linenum> <COLON> <pattern> <HT> <pathname>
    
    
    
    或者使用以下命令在用户主页和存储库文件夹中打印
    .gitignore

    cat~/.gitignore“$(git rev parse--show toplevel)/.gitignore“$(git rev parse--show toplevel)/.git/info/exclude

    或者使用
    git add-f
    ,它允许添加其他被忽略的文件

    有关详细信息,请参阅:
    mangitinore
    mangitcheck ignore

    语法 git检查忽略[options]路径名…​

    git检查忽略[选项]--标准输入


    检查您是否具有该文件夹的权限。我刚刚遇到此问题,这是因为该文件夹属于www数据用户,而不是我作为登录到终端的用户。

    请确保
    .gitignore
    文件没有忽略自身。 一个常见错误是将
    *
    规则添加到
    .gitignore
    文件以忽略当前文件夹中的每个文件。 解决方法是在
    .gitignore
    中添加一个异常:

    *
    !.gitignore
    

    这样,目录中的所有文件都将被忽略,除了
    .gitignore

    在我的情况下,是路径中的正斜杠导致了问题

    不行

    /srv/bootstrap/
    
    工作


    对我来说,我不小心在我的~/.gitignore_全局文件中有一个通配符。也许可以检查一下吗?

    还有一件事:如果你所在的目录需要根访问权限才能写入或执行,请确保你是根用户。实际上,我在尝试添加子模块时遇到了一个奇怪的错误,git不断抱怨路径错误
    /srv/bootstrap/
    
    srv/bootstrap/
    
    ignore = !"bash -c 'diff --unified=999999999 --color=always <(echo a; git check-ignore --verbose --non-matching --no-index . \"$@\") <(echo b; git check-ignore --verbose --non-matching . \"$@\")' - \"$@\" | tail -n+7; git hidden \"$@\" # Show ignore status of arguments. Files included by index are tagged with prepended '+'."
    hidden = !"git ls-files -v -- \"$@\"| grep -E '^(S|[[:lower:]])' # S means update-index --skip-worktree, and lower first letter means --assume-unchanged."
    
    git ignore file1 file2 file3