2
Git 사전 커밋 훅 클라이언트 스크립트를 작성 중이며 커밋 된 파일을 필터링하고 삭제 된 스크립트로 무언가를하고 싶습니다.사전 커밋 훅 쉘 스크립트에서 git 상태 확인
다음과 같이 커밋에 포함 된 모든 파일을 다음과 같이 반복 할 수 있음을 알았습니다.
#!/bin/sh
for file in $(exec git diff-index --cached --name-only HEAD)
do
echo $file
done
내가 파일이 삭제 될 때이
D
로 첫 번째 문자를 표시하기 때문에 내가
git status --porcelain <file>
를 사용할 수 있다고 생각 삭제 된 파일을 찾을 수 있습니다.
그래서 내가 필요한 것은 git status --porcelain <file>
의 출력에서 첫 번째 문자가 D
인지 확인하는 구문을 만드는 데 도움이됩니다.
#!/bin/sh
for file in $(exec git diff-index --cached --name-only HEAD)
do
# This line doesn't work but it's the best I've came up with.
if git status --porcelain $lessFile == *"D"*; then
echo "$file was deleted"
fi
done
여기에 근거가 없다면 알려주세요. 감사.
답변 해 주셔서 감사합니다. 샘플에 전체 문맥을 포함 시키십시오. 쉘 스크립팅에 관해서 많은 것을 알지 못한다면 나는 조각들을 모으는데 어려움을 겪고있다. –
그냥 두 번째를 사용하십시오. 그것은 완전하고 완전하다. –
굉장하다, 내가 처음 시도했을 때 그것을 잘못 복사했다. 당신의 도움을 주셔서 감사합니다. –