Git:僅列出「未跟蹤」文件(也是自定義命令)

有沒有辦法使用像git ls-files這樣的命令來只顯示未跟蹤的文件? git

我問的緣由是由於我使用如下命令來處理全部已刪除的文件: spa

git ls-files -d | xargs git rm

對於未跟蹤的文件,我想要相似的東西: code

git some-command --some-options | xargs git add

我可以找到git ls-files-o選項,但這不是我想要的,由於它也顯示了被忽略的文件。 我還可以提出如下長而醜陋的命令: it

git status --porcelain | grep '^??' | cut -c4- | xargs git add

彷佛我必須在這裏使用更好的命令。 若是沒有,我如何建立自定義git命令? io


#1樓

git add -A -n會作你想要的。 -A將全部未跟蹤文件到回購, -n使它成爲dry-run ,沒有進行附加,但被賦予狀態輸出,列出了被添加的每一個文件。 class


#2樓

我認爲這與原版海報意圖相同: sed

git add . file


#3樓

一切都很簡單 grep

要獲取全部未跟蹤文件的列表,請使用命令git status選項-u ( - untracked-files) command

git status -u

#4樓

在尋找可能添加的文件時。 git show的輸出就是這樣,但它還包含不少其餘內容。 如下命令對於獲取相同的文件列表很是有用,但沒有其餘全部內容。

git status --porcelain | grep "^?? " | sed -e 's/^[?]* //'

當在管道中組合以查找與特定模式匹配的文件而後將其傳遞給git add時,這很是有用。

git status --porcelain | grep "^?? "  | sed -e 's/^[?]* //' | \
egrep "\.project$|\.settings$\.classfile$" | xargs -n1 git add

#5樓

若是您只想刪除未跟蹤的文件,請執行如下操做:

git clean -df

若是您還想包含特別忽略的文件,請將x添加到該文件中。 我用git clean -dfx全天不少

您能夠經過編寫一個名爲git-whatever的腳原本建立自定義git,並將其放在路徑中。

相關文章
相關標籤/搜索