프로젝트를 운영하다 보면, 실수로 빌드가 깨진 코드를 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
'FE' 카테고리의 다른 글
[zustand]WEEK2 미들웨어 redux.ts와 subscribewithSelector.ts (0) | 2025.07.02 |
---|---|
[zustand]WEEK1 vanilla.ts로 zustand의 핵심 로직 파헤치기 (1) | 2025.07.02 |
[CSS] next + tailwind로 프로그레스 바 만들기 (0) | 2023.12.29 |
CSS & tailwind -정사각형 이미지 만들기 (0) | 2023.12.29 |
CSS - Reset vs Normalize CSS: 웹 스타일링 초기화 방법 비교 (0) | 2023.08.30 |