GIT:搜索包含小写名称的所有目录

时间:2012-05-29 05:50:35

标签: git

我在Windows上使用GIT。如何在包含小写目录名称的所有提交中搜索存储库中的目录?示例我有以下文件

  • 测试1 \ mydirectory中\ TESTFILE.TXT
  • TEST2 \ mydirectory中\ TESTFILE.TXT
  • Test3的\ mydirectory中\ TESTFILE.TXT
  • TEST4 \ mydirectory中\ TESTFILE.TXT
  • TEST5 \ mydirectory中\ TESTFILE.TXT

搜索应返回以下结果。

  • TEST2 \ mydirectory中\ TESTFILE.TXT
  • TEST4 \ mydirectory中\ TESTFILE.TXT
  • TEST5 \ mydirectory中\ TESTFILE.TXT

2 个答案:

答案 0 :(得分:0)

你可以告诉git忽略大小写不匹配:

  1. git config --global core.ignorecase true(全局设置)
  2. git config core.ignorecase true(针对特定存储库)

答案 1 :(得分:0)

This thread可能有助于检测除相同情况之外的所有相同路径:

  

你可以这样做:

git ls-files | tr A-Z a-z | sort | uniq -d
  

但:

     
      
  1. 它只会打印小写版本,而不是所有版本。
  2.   
  3. 它不处理带有嵌入换行符的文件名。
  4.         

    您可以使用以下内容修复两者:

  git ls-files -z | perl -0ne '
    push @{$h{lc($_)}}, $_;
    END {
      print join("\n", @{$h{$_}}) . "\n\n"
        foreach grep { @{$h{$_}} > 1 } keys(%h);
    }
  '

该主题的其余部分讨论了git ls-files(可能很慢)与git ls-tree -r <commit>的优点。