Git 커밋 메시지 자동 완성기 만들기

Jane·2021년 7월 23일
16
post-thumbnail

요즘 알고리즘 문제 풀이를 주차별 이슈로 관리하고 있는데, 커밋 메시지를 매번 작성하기 너무 귀찮다는 생각이 들었다. 어떻게 자동화할 방법이 없을까 하다가 블로그의 알고리즘 카테고리와 이슈 번호를 포함한 커밋 메시지 생성부터 원격 저장소로의 푸쉬까지 자동으로 해주는 스크립트를 작성해보았다.

들어가기 전에...


Jane's PS Blog에 들어가면 알고리즘이 카테고리별로 분류되어 있는데, 실제 포스트는 아래와 같이 생성된다.

그리고 블로그 포스팅을 업로드하기 위해 커밋할 때는 아래와 같이 카테고리: (#이슈번호) 문제 이름의 형식으로 커밋을 하고 있었다.

하루에도 몇 문제씩 알고리즘을 푸는데 매번 커밋 메시지를 작성하려니 커밋 메시지를 update로 모든 걸 끝내고 싶은 욕구가... 들어 커밋 메시지 작성, 커밋, 푸쉬 과정을 자동화하기로 했다.

스크립트 작성

auto-commit-and-push.sh

#!/bin/bash
git add .
C=$(git diff --staged | grep category)
T=$(git diff --staged | grep title)
BRANCH=$(git branch | grep '*')
CATEGORY=${C##*:}
TITLE=${T##*:}
ISSUE=${BRANCH##*-}
MESSAGE="${CATEGORY:1}: (#${ISSUE}) ${TITLE:1}"
git commit -m "${MESSAGE}"
git push origin "${BRANCH:2}":<target branch>
  1. 게시글의 내용에서 카테고리와 타이틀 메타 데이터를 읽어온다.
  2. 현재 작업하고 있는 브랜치에서 이슈 번호를 가져온다.
  3. 카테고리: (#이슈번호) 게시글 제목의 형태로 커밋 메시지를 생성한 뒤 커밋한다.
  4. 브랜치로 푸시한다.

Alias 등록

이제 alias를 등록해보자. auto-commit-push의 약자로 acp만 입력하면 작성했던 스크립트가 실행되도록 설정해주었다.

git config --global alias.acp '!bash auto-commit-and-push.sh'

결과물

git acp만 실행하면 알아서 아래와 같은 커밋메시지가 생성된 뒤 push된다🎉🎉🎉

GitHub 저장소


Source

0개의 댓글