2017-11-20 14 views

답변

2

하나, as in this answervim 전화 : 대신 pre-commit 후크를 사용하는

files=`find /path/to/repo -name "*.filetype" -type f` 
for file in $files 
do 
    vim -e -s -n "+normal gg=GZZ" $file 
done 

을하지만, 스크립트를 실행됩니다 clean 스크립트를 정의 할 수 있습니다 (같은 정력을 호출 위).

스크립트를 사용하여 content filter driver를 통해 호출됩니다 (귀하의 경우 : *.filetype)를 .gitattributes declaration.

https://i.stack.imgur.com/tumAc.png
("Pro Git book"에서 "Customizing Git - Git Attributes"에서 이미지))

로컬 자식 설정의 내용 파일러 드라이버, 자동, git commit에 해당 스크립트를 적용 할 것을 선언되면.

"Best practice - Git + Build automation - Keeping configs separate"의 전체 예제를 참조하십시오.

+0

올바른 방향으로 나를 주셔서 감사합니다. 필터는 stdin을 기대하고 stdout에 쓰는 것 같습니다. 커밋되는 파일 만 포맷하려면 어떻게해야합니까? % f는 파일 이름을 통과 시키지만, stdin과 stdout을 기대하는 상태 바로 다음의 문서를 말합니다. 그래서 주어진 모든 파일에 내 vim 명령을 적용하면 어떻게됩니까? –

+0

@RyanPrice "커밋되는 파일 만 포맷하고 싶다면 어떻게해야할까요?": 깨끗한 스크립트가 수행합니다. 커밋 할 파일의 형식을 지정합니다. 거기에서 https://vi.stackexchange.com/a/5994와 같이 vim 명령에 내용을 전달할 수 없는지 확인하십시오. – VonC