
스테이지된 파일에 스테이지되지 않은 변경 사항이 있는지 감지하고 이를 커밋 전 후크에 추가하고 싶습니다.
예를 들어, 출력이 다음과 같을 때 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 }'