[英]What's the git equivalent to p4's “…” pattern?
當我使用p4(Perforce)時,我會經常使用“...”模式,它有點像“*”,除了它遍歷文件系統層次結構的級別(即:它也匹配斜杠)。 這對於處理目錄樹中幾個級別的源文件很方便。
例如:
p4 diff foo/.../*.py
這將“p4 diff”子樹“foo”下的所有Python文件。
有沒有一種簡單的方法來獲得與git相同的結果? 現在我必須做這樣的事情:
git diff $(find foo -name '*.py')
這不太方便。
git通常依賴於shell提供的路徑名擴展功能 - 這是正確的,因為路徑名擴展並不完全是版本控制系統的工作。 所以你應該看看你選擇的shell,看看它是否支持像...
pathname擴展這樣的東西。 如果您正在使用bash,則可以設置globstar
選項
shopt -s globstar
然后你可以使用雙星號來獲得你想要的擴展:
git diff foo/**/*.py
請注意,根據我的測試,雙星號似乎與部分路徑名組件不匹配。 換句話說,它必須跟在前面並且前面加上一個斜杠,以匹配像foo/bar/blah/baz.py
。 如果你嘗試寫foo/ba**/*.py
它將匹配與foo/ba*/*.py
相同的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.