본문 바로가기
프로그램이야기/기술블로그

git-hooks 사용하여 pre-commit 적용해보기

by Doinge 2020. 2. 12.
728x90
반응형

 

이번에 신규 모바일 api 프로젝트를 들어가면서 git hook을 이용해 보기로 했다.

Git hook이란? 

프로그래밍에서 hook이란 특정 이벤트 또는 함수가 호출되기 전, 후에 실행되는 코드를 말한다.

따로 설치할 필요는 없고, git repository가 있는 곳에서 확인할 수 있다.

아무 repository로 가서 hooks로 이동해 본다.

뭔가 엄청 많다 필자는 이미 pre-commit 스크립트를 작업한 뒤라. sample이 빠져있다.

. sample만 지우고 안에다가 echo 'test-1'만 실행시켜도 commit직전 ' test-1 '이 출력된다.

적용된 모습이다.

필자는 pre-commit을 이용하여 commit 전 문법 검사, php 표준권고 (PSR)에 맞게 문법 및 로직 검사 등을 체크해주는 것들을 붙여 넣었다.

 

pre-commit에 적용할 툴( 링크 클릭 시 이동 )

사용 모듈
PHP Lint(Syntax check)- 설치 필요 x
PHP CodeSniffer (PHPMD + PHPCBF)
PHP Coding Standards Fixer (PHP-CS-Fixer)
PHP Mess Detector (PHPMD)
PHP Copy/Paste Detector (PHPCPD)
PHP UNIT_TEST

필자는 composer로 설치 했다.

이것들을 실행시켜주는 shell script는 오픈소스로 적용했다. ( https://github.com/allysonsilva/php-pre-commit )

기존에 구현되어있는 코드에 PHP UNIT TEST를 적용하기 위해 해당 코드만 추가를 해주었다.

반응형

자 그럼 이제 잘 작동하는지 테스트를 해보자 ( git commit 명령어 입력 후 자동으로 실행되는 동작을 보자 ) 

 

잘 작동하는 것이 보일 것이다.  문제가 있으면 해당 파일을 commit 하지 않고 알려준다.

PSR에 맞지 않는 코딩이 있을 경우 알아서 수정해 준다. 참 편리하다.

pre-commit파일 안에 명령어로 실행만 시켜주면 되기 때문에 참 쉽다.

 

커밋 전 귀찮은 작업들을 한 번에 처리하게끔 만들어 주어 실수도 잡아주고 코딩 스타일도 맞출 수 있어 팀 내에서 사용하면 좋을 듯하다. 여러분들도 한번 적용해 보시기 바랍니다.

 

감사합니다.!

728x90
반응형

댓글