Git에서 충돌하는 파일을 나열하는 가장 간단한 방법은 무엇입니까? |

충돌하는 파일 의 일반 목록 만 있으면 됩니다.

다음보다 간단한 것이 있습니까?

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

또는:

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

나는 그것을 위해 편리한 alias것을 설정할 수 있다고 생각 하지만 전문가가 어떻게하는지 궁금합니다. 쉘 루프를 작성하여 충돌 등을 자동으로 해결하는 등의 방법으로 사용합니다 mergetool.cmd.



답변

git diff --name-only --diff-filter=U

답변

git diff --check

줄 번호를 포함하여 충돌 마커가 포함 된 파일 목록이 표시 됩니다 .

예를 들면 다음과 같습니다.

> git diff --check
index-localhost.html:85: leftover conflict marker
index-localhost.html:87: leftover conflict marker
index-localhost.html:89: leftover conflict marker
index.html:85: leftover conflict marker
index.html:87: leftover conflict marker
index.html:89: leftover conflict marker

출처 : https://ardalis.com/detect-git-conflict-markers


답변

내 질문에 대답하려고합니다.

아니요, 질문에 나와있는 것보다 더 간단한 방법은 없습니다.

그것을 너무 많이 입력 한 후, 짧은 파일을 ‘git-conflicts’라는 실행 파일에 붙여 넣고 git에 액세스 할 수있게되었으므로 이제는 git conflicts원하는 목록을 얻을 수 있습니다
.

업데이트 : Richard가 제안한 것처럼 실행 파일의 대안으로 git 별칭을 설정할 수 있습니다

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

별칭보다 실행 파일을 사용하면 팀 구성원과 해당 스크립트를 공유 할 수 있습니다 (리포지토리의 bin 디렉토리에 있음).


답변

바보 같은 방법은 다음과 같습니다.

grep -H -r "<<<<<<< HEAD" /path/to/project/dir

답변

git status “수정 됨”또는 “새 파일”대신 충돌이있는 파일 옆에 “수정 됨”을 표시합니다.


답변

git status --short | grep "^UU "

답변

이것은 나를 위해 작동합니다 :

git grep '<<<<<<< HEAD'

또는

git grep '<<<<<<< HEAD' | less -N