2012-05-29 46 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>

您可以用類似解決這兩個。

相關問題