Git - 단계적이지 않은 변경사항이 있는 단계적 파일 찾기

Git - 단계적이지 않은 변경사항이 있는 단계적 파일 찾기

스테이지된 파일에 스테이지되지 않은 변경 사항이 있는지 감지하고 이를 커밋 전 후크에 추가하고 싶습니다.

예를 들어, 출력이 다음과 같을 때 README.md에 미단계 변경 사항이 있음을 감지할 수 있어야 합니다.

❯ git status

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
    modified:   README.md

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
    modified:   README.md
    modified:   foo.txt

내가 찾을 수 있는 가장 좋은 해결책은 준비된 파일과 준비되지 않은 파일 목록을 파일에 작성한 다음 사용하는 것입니다.comm

git diff --name-only > /tmp/unstaged.txt
git diff --name-only --staged > /tmp/staged.txt
comm /tmp/unstaged.txt /tmp/staged.txt

답변1

M짧은 상태를 사용하는 경우 스테이징 콘텐츠는 첫 번째 열에 표시되고 , 스테이징되지 않은 콘텐츠는 M두 번째 열에 표시됩니다. 따라서 단계적 및 비단계적 변경 사항이 있는 파일은 다음을 통해 감지할 수 있습니다.

git status -s | awk '/MM / { print $2 }'

관련 정보