FE

git push 하기전에 자동으로 build 확인하기

<ziny/> 2025. 7. 5. 01:13
728x90

 

프로젝트를 운영하다 보면, 실수로 빌드가 깨진 코드를 push 하는 경우가 생깁니다.

이런 문제를 사전에 방지하기 위해

git push 하기전에 build를 자동으로 하도록 처리하는 방법에 대해서 알아보겠습니다.

 

💡 작업 순서

 

1. 프로젝트의 루트에서 .git/hooks/pre-push 파일생성

 

2. pre-push에 코드 추가

#!/bin/sh
npm run build

 

3. 터미널에서 실행 권한 부여

chmod +x .git/hooks/pre-push

 

git push를 하면 자동으로 npm run build가 먼저 실행됩니다.

build에 실패하면 push가 중단되고, 

성공해야만 push도 성공합니다.

 

🔴 마주하는 다양한 에러들

 

[에러1] pre-push 파일이 안 보이는 경우

 

🔎  원인: pre-push 파일은 자동으로 숨김 처리가 되기 때문에 코드에디터에서 보이지 않는 경우가 생깁니다.

 

💡 해결: 명령어를 입력하면, 실제로 파일이 있는지, 권한은 어떤지 확인할 수 있습니다.

ls -al .git/hooks | grep pre-push

 

 

[에러 2] 실행 권한 부여 명령어가 실행되지 않는 경우

 

🔎  원인: pre-push실제 파일명에 보이지 않는 공백이 존재하는 경우

 

💡해결:

 

1. 공백이 있는지 확인합니다.

ls -lA .git/hooks | cat -vet

 

2. pre-push 와 $ 사이에 공백이 보인다면 지워 줍니다.

mv ".git/hooks/pre-push " ".git/hooks/pre-push"

 

3. 이러고도 해결이 안되면 파일을 지우고 새로 만듭니다.

rm -f .git/hooks/pre-push
echo -e "#!/bin/sh\nnpm run build" > .git/hooks/pre-push

 

4. 이후 실행 권한 부여 명령어를 재실행해봅니다.

chmod +x .git/hooks/pre-push

 

5. 정상적으로 되었는지 확인합니다.

ls -l .git/hooks/pre-push # 결과가 -rwxr-xr-x처럼 나와야 합니다.

 


[에러 3] git push를 했는데 pre-push가 실행되지 않는 경우

 

hint: The '.git/hooks/pre-push' hook was ignored because it's not set as executable.

 

🔎 원인: 실행 권한이 없어서 생김 

 

💡해결 : 터미널에서 잊지 말고 실행권한을 줘야 합니다.

chmod +x .git/hooks/pre-push
728x90