在一些產生合并沖突的操作之后,我們可以這樣做:
$ git checkout
foo/bar/x.c: needs merge
foo/bar/y.c: needs merge
xyzzy/w.c: needs merge
只使用一些git命令,我們怎么能得到這個輸出:
foo/bar/x.c
foo/bar/y.c
xyzzy/w.c
git status將檔案顯示為both modified:,并使用git status -s它們在輸出中顯示的格式:
UU foo/bar/x.c
UU foo/bar/y.c
UU xyzzy/w.c
所以不符合要求。git checkout不需要任何類似的東西--name-only。git diff --name-only只列出檔案,但也包括沒有沖突的檔案。
我想避免以文本方式處理 git "porcelain" 命令輸出的反模式,我顯然知道該怎么做:
git status -s | awk '$1=="UU"&&$0=$2'
因此,我將通過標記和諸如此類的方式惡意報復所有答案。不要說你沒有被警告。
uj5u.com熱心網友回復:
git ls-files --unmerged(或git ls-files -u)會這樣做。來自git-book 檔案:
-u
--unmerged在輸出中顯示未合并的檔案(forces --stage)
根據您的特定需求,您可能還希望包含其他狀態,或者可能希望包含其他“暫存編號”,如相關 StackOverflow 問題中所述,什么是等效的 git ls-files 命令以查看與 git status 相同的資訊? .
與手冊頁一樣,git ls-files它是一個管道命令,因此它應該是穩定的并且不需要額外的處理。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/414055.html
標籤:
