簡體   English   中英

什么是相當於p4的“......”模式的git?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM