簡體   English   中英

使用git中的glob模式暫存除特定文件以外的所有文件

[英]staging all files except specific files using glob patterns in git

我正在嘗試使用git add命令一些新創建的文件以及其他一些已編輯的文件暫存到git的暫存區中。 我真正想要的是暫存除* .java文件之外的所有文件(在我的當前目錄和項目中的每個子目錄中)。 我試圖使這項工作沒有成功。

pwd:/ d / myProject

這些都不起作用:

git add !(*.java)
git add \!\(\*.java\)
git add \!\(*.java\)
git add !\(\*.java\)

有人可以幫我做那個工作嗎? 並且在某種程度上可以使用正則表達式代替glob嗎?

您可以使用find

find . -type f ! -iname '*.java' -exec git add {} +

您也可以使用! -ipath <pattern>跳過與模式匹配的路徑! -ipath <pattern> ! -ipath <pattern> ,例如:

find . -type f ! -iname '*.java' ! -ipath './a/b/*c*' -exec git add {} +

這實際上取決於外殼程序的glob設置。 對於更獨立於系統的行為,您可以做的是使用find:

find . -not -iname '*.java' -exec git add '{}' \+

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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