목록프로그래밍👩🏻💻/Git (6)
suyeonme
Commit 대상 파일에 console.log가 포함되어있는 경우, commit 막기Git flow 전략을 사용해서 브랜치를 관리하는 경우, master 브랜치는 곧 배포 브랜치입니다. 따라서 브랜치에 작업물을 Commit하는 경우, console이 포함되어있다면 Github Hook을 이용하여 commit을 못하도록 막을 수 있습니다. 보편적으로 운영환경에서는 console을 제거합니다. 이유는 다음과 같습니다. console에는 민감정보를 포함할 수 있습니다.console로 번들사이즈가 늘어납니다.스크립트 작성하기(1) 스크립트 파일 생성 및 작성저의 경우, script/check-console.sh 파일을 생성했습니다. 해당 스크립트는 husky가 설치된 루트에 위치시킵니다.아래는 기본적으로 메..
commitlint로 Commit 컨벤션 적용하기규모가 큰 팀에서 협업시, 커밋 컨벤션을 따르면 커밋의 일관성을 지킬 수 있다. 대표적으로 다음과 같은 커밋 컨벤션을 사용한다.feat(AppController): Format responsefeat: Format response lintcommit을 이용해서 작성한 commit이 컨벤션을 지켰는지 검사해보자! (1) 라이브러리 설치# husky 설치pnpm add --save-dev huskypnpm exec husky init# commitlint 패키지 다운로드pnpm install --save-dev @commitlint/config-conventional @commitlint/cli# commitlint.config.js 파일 생성echo "exp..
Husky를 도입하는 이유Git Hook은 기본적으로 로컬 환경에서 동작한다. 따라서 스크립트를 적용해도 팀 전체가 동일한 환경에서 개발하는 것이 보장되지않는다.이러한 경우, Husky 라이브러리를 사용해서 Git Hook 스크립트를 팀 전체에 강제할 수 있다.Husky 설치하기현재 프로젝트 구조는 모노레포로 다음과 같이 구성되어있다..├── packages/│ ├── frontend│ └── backend/│ ├── src│ ├── .eslintrc.js│ ├── .prettierrc│ └── package.json (1) Husky 설치프로젝트에서 pnpm을 사용중이여서 아래의 명령어로 설치한다.내 경우는 packages/backend/package..
태그(Tag)란? 태그란 커밋을 참조하기 쉽도록 이름을 붙이는 것으로, 즉 커밋을 태깅(tagging)하는 것이다. 주로 배포 브랜치(release branch)에서 서비스의 버전을 지정할 때 사용한다. 서비스의 버전이 1.0이라면 서비스 1.0을 릴리즈할 때 태깅을 한다. 그 이후 신규 기능은 커밋으로 관리를 하다가 서비스 1.1을 릴리즈할 때의 커밋에 태깅을 할 수 있다. 이런식으로 배포 브랜치를에 태그를 달아서 서비스의 버전을 명시하거나 문제가 생겼을 때 해당 부분을 롤백(rollback)하는등의 행위를 할 수 있다. 태그의 종류 Lightweight Tag: 이름만 붙일 수 있는 태그(커밋번호가 곧 태그)로, 임시로 태그를 생성하거나 메타 데이터를 제공하고 싶지 않은 경우 사용한다. Annotat..
코드를 작성하다가 폴더 이름에 대소문자 철자 오류가 있는 것을 발견하였다. 따라서 폴더명을 올바르게 고치고 변경 내용을 push하였다. 변경 사항을 반영하기 위하여, 젠킨스 빌드잡을 돌렸는데 빌드잡이 실패하였다. 하지만 내 로컬 환경에서는 정상적으로 작동하였다. 젠킨스 빌드 실패 젠킨스 빌드 실패 로그는 아래와 같았다. 내가 변경한 모듈의 경로를 찾지 못해서 Module not found 에러가 발생한 것이였다. 확인해보니 해당 모듈을 import하는 경로에는 문제가 없었다. 젠킨스 빌드 실패 원인 알고보니 원인은, vscode에서 직접 폴더 이름의 대소문자를 변경한 탓이였다. 나의 로컬 환경에는 변경사항이 적용이 되었지만, 해당 변경사항을 push했을 때, 원격 저장소에 있는 폴더명과 나의 로컬 환경의..