2012-03-21 3 views
12

많은 솔루션을 제안했지만 거의 모든 파일이 변경된 경우 전체 파일에서 공백을 제거합니다. 이는 옵션이 아닙니다. 나는 또한 시도했다 :사전 커밋 git 후크에서 변경된 행에서만 후행 공백을 제거 할 수 있습니까?

git diff -w --no-color | git apply --cached 

하지만 작동하지 않는 것 같습니다. 나는 자식 버전 1.6.3.1을 사용하고 있으며 그것을 업데이트 할 수 없다.

답변

9

답을 찾을 :이 질문은 조금 오래된

git diff --cached --no-color > stage.diff && git apply --index -R stage.diff && git apply --index --whitespace=fix stage.diff && rm -f stage.diff 
+0

'git apply'가 루트 디렉토리에서 발생해야하거나 작동하지 않는다는 것을 알기에는 너무 오래 걸렸습니다. –

+0

부분적으로 스테이지 파일 (Linux의 Git 1.9.2)에서는 작동하지 않는 것 같습니다. –

1

나는이 스크립트를 사용하기가 쉽지 않지만 좋은 시작점은 git과 함께 제공되는 샘플 미리 커밋 훅 (diff --check으로 변환되기 전에)입니다. 적어도 추가 된 행에 대해서만 경고합니다.

gitweb view of pre-commit script

0

을,하지만 난

을 실행하여 git wsgit rebase --whitespace=fix 당신은 유사한 별칭을 설정할 수 있습니다

별칭있어

git config --global alias.ws 'rebase --whitespace=fix' 

Th at는 아직 푸시하지 않은 커밋을 취하여 변경 한 행에서만 공백을 수정 한 후에 다시 적용합니다.

관련 문제