2012-05-29 48 views
2

在窗口上使用GIT的Iam。如何在包含小写目录名称的所有提交中搜索存储库中的目录?例如我有以下文件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

回答

0

通知Git忽略大小写不匹配:

  1. git config --global core.ignorecase true(全局设置)
  2. git config core.ignorecase true(特定库)
+0

感谢Burhan ...还有一个问题......我如何获得我的GIT仓库中所有提交中小写名称的所有目录列表? – papfan

+0

@girish:regex?使用find命令thro你的msysgit shell – positron

+0

Iam对GIT来说很新。所以,没有完全得到你的解决方案。 Iam使用GIT for windows而不是msysgit。你能否给我提供一个示例语法,用于在所有提交中搜索具有小写名称的目录列表的完整分支? – papfan

0

This thread可能是检测除了他们的情况相同的所有路径有用:

你可以这样做:

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

但是:

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

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>

您可以用类似解决这两个。

相关问题