惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

量子位
博客园_首页
罗磊的独立博客
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
Last Week in AI
Last Week in AI
D
DataBreaches.Net
Jina AI
Jina AI
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
Apple Machine Learning Research
Apple Machine Learning Research
V
V2EX
D
Docker
MongoDB | Blog
MongoDB | Blog
B
Blog RSS Feed
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
宝玉的分享
宝玉的分享
Engineering at Meta
Engineering at Meta
The Cloudflare Blog
博客园 - 三生石上(FineUI控件)
有赞技术团队
有赞技术团队
人人都是产品经理
人人都是产品经理
H
Help Net Security
T
The Blog of Author Tim Ferriss

The Tracks of mulder21c

고정된 참조 위치 정보 선형 이미지의 최소 명도 대비 요구사항은 몇 대~ 몇? 단일 문자 단축키 (Character Key Shortcuts) 입력 방식(Input Modalities) 적응성(Adaptable) KWCAG 2.2 변경 사항 개요 댓글 시스템 remark42로 변경기 새 테마로 갈아입힘 Atomic Design + Storybook 적용 후기 json-server에 사용자 인증 구현하기 개발환경 WSL2 + zsh로 갈아타기 Pass function as props in vue 2020년 회고 colum flexbox에서 padding bottom 문제 해결 Nuxt를 통해 보는 프론트엔드 개발자가 하는 일 Nuxt Router kebab-case 처리 JS to SCSS 변환 Nuxt + Storybook 통합 하기 2020 이직 이야기 2020 이직 이야기 2020 이직 이야기 2020 이직 이야기 Windows에서 PM2 실행 오류 해결 오픈톡 정지에 대한 카카오톡 고객센터 후기 배려에 대한 단상 학습이 잘 되지 않는 이유 웹팩 4 마이그레이션 삽질기 babel 7 업데이트 후 node_modules 패키지가 변환되지 않는다면? white space는 4px이다? 정말? 2020년 시간 관리를 위해서 도입 한 툴들
Git hook으로 브랜치 이름 규칙 강제하기
멀더끙 · 2023-07-10 · via The Tracks of mulder21c

2년 전에 작성했어야 할 글을 오늘에서야 작성하는 게으른 나 헤헷…

멋쩍은 웃음

현 회사에 합류하고 처음 담당한 프로젝트는 프론트엔드 경험이 거의(?) 없는 팀원 두 명을 리드하면서 Nuxt 기반의 프로덕트를 개발하는 프로젝트였다. (내가 입사 당시 UI 개발팀이었고 프론트엔드로 전환 중이었다.)

개발 환경을 설정하고 협업 간 여러 규칙을 설정해 가는 중에 git branch 네이밍에 대한 정책도 함께 설정했는데 역시 평소 사용하지 않던 규칙은 몸에 배어 있지 않기 때문에 놓치거나 오탈자가 발생하는 문제들이 종종 발견되었다.

도구로 해결할 수 있는 문제는 도구로 해결하자는 주의라 브랜치 네이밍 규칙을 강제할 수 있는 방법을 고민해 보기 시작했고, 몇 번의 리서칭 끝에 githook을 이용해서 강제성 부여가 가능함을 확인했다.

다만 너무 엄격한 강제성은 안 그래도 새로운 것들에 대한 부담이 있는 상태에서 계속 스트레스를 가중 시키는 일이 될 것 같아 어차피 협업 시 또는 GitLab CI에서만 정도로 문제가 될 수 있을 것으로 예상하여 push 시에만 규칙을 검증하고 실패 시 push를 막는 쪽으로 설정하기로 했다.

방법은 의외로 간단했는데 단지 shell script를 작성할 줄 알기만 하면 되고 정규식을 사용할 줄만 알면 되었다. (물론 몰라도 검색하면 나오고 요새는 chatGPT가 다 작성해주더라…)

current_branch="$(git rev-parse --abbrev-ref HEAD)"​​
valid_regex="^(feature|fixup|hotfix|refactor)\/[a-zA-Z0-9_-]+$"message="브랜치 이름이 규칙에 맞지 않아요."if [[ $current_branch= "develop" ]]then
  exit 0fi
if [[ ! $current_branch=~ $valid_regex ]]then
  printf "​$message"exit 1fi

이런식으로 말이다.

참고로 현재 브랜치를 가져오는 코드는 git branch --show-current로도 될거다.
git을 CLI로 사용한게 2014년부터였어서 rev-parse가 더 익숙해서 습관적으로 쓴 거라…

Hero image from pixabay