833

競合するファイルの単純なリストが必要です。

以下よりも簡単なものはありますか?

git ls-files -u  | cut -f 2 | sort -u

また:

git ls-files -u  | awk '{print $4}' | sort | uniq

そのためのハンディをセットアップできるとalias思いますが、プロがどのように行うのか疑問に思っていました. たとえば、競合を自動解決するなどのシェルループを作成するために使用しmergetool.cmdます。

4

20 に答える 20

1444

git diffを使用し、name-onlyを使用して名前のみを表示し、diff-filter=Uを使用して「Unmerged」ファイルのみを含めます。

git diff --name-only --diff-filter=U
于 2012-06-03T23:43:59.907 に答える
42

私の質問に答えようとしています:

いいえ、問題の方法よりも簡単な方法はないようです。

それを何度も入力した後、短い方を「git-conflicts」という名前の実行可能ファイルに貼り付けて、git からアクセスできるようにし ました。これで、必要なgit conflictsリストを取得することができます。

更新: Richard が示唆するように、実行可能ファイルの代わりに git エイリアスを設定できます

git config --global alias.conflicts '!git ls-files -u | cut -f 2 | sort -u'

エイリアスよりも実行可能ファイルを使用する利点は、そのスクリプトをチーム メンバーと共有できることです (リポジトリの bin dir 部分で)。

于 2010-06-26T21:07:39.800 に答える
38

ここにばかげた方法があります:

grep -H -r "<<<<<<< HEAD" /path/to/project/dir
于 2013-12-16T11:50:16.450 に答える
25

git status「変更された」または「新しいファイル」などの代わりに、競合があるファイルの横に「両方が変更されました」と表示します

于 2011-10-19T09:53:42.147 に答える
20
git status --short | grep "^UU "
于 2012-02-10T16:33:15.820 に答える
5

コミットしようとして競合が存在する場合、git は現在未解決の競合のリストを表示しますが、単純なリストではありません。競合を修正するとリストが短くなるため、これは通常、インタラクティブに作業するときに必要なものです。

于 2011-08-04T07:20:28.633 に答える
3

これは Git に追加されたのかもしれませんが、まだ解決されていないファイルは、次のようにステータス メッセージ (git status) に一覧表示されます。

#
# Unmerged paths:
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      syssw/target/libs/makefile
#

これは Unmerged paths セクションであることに注意してください。

于 2015-04-21T15:04:27.517 に答える
1

私はいつもちょうど使ってきましたgit status

最後に追加awkして、ファイル名だけを取得できます

git status -s | grep ^U | awk '{print $2}'

于 2014-01-24T18:06:36.227 に答える
0

より多くの情報を提供するチャールズ・ベイリーの答えのわずかなバリエーション:

git diff --name-only --diff-filter=U | xargs git status
于 2014-02-04T01:44:29.153 に答える