", 바라건대"- Git Hooks 소개

4357 단어 shellgit
단일 트윗에서 영감을 받은 블로그 게시물의 또 다른 인스턴스에서 이 게시물은 git hooks(구체적으로 커밋 후크)에 대한 매우 기본적인 소개를 제공합니다.



트윗








Challah Bäck 소녀


@emgrasmeder






커밋 메시지를 ", 바라건대"로 수정하는 커밋 후 후크


오후 22:29 - 2021년 5월 4일









나는 오늘 일찍 타임라인에서 이것을 보았고, 크게 웃었고, 오랫동안 git hooks에 대해 알고 있었음에도 불구하고 실제로 한 번도 작성하지 않았다는 것을 깨달았습니다. 나는 앞서 언급한 트윗을 재현하는 데드 심플 훅을 작성하여 문제를 해결하기로 결정했습니다.

코드



다음과 같이 새 git repo를 초기화하여 시작합니다.

cd /tmp && mkdir hook-testing
cd hook-testing
git init


git은 저장소를 초기화할 때 실제로 많은 샘플 후크를 생성합니다. ls .git/hooks/를 실행하면 모두 볼 수 있습니다.

자세히 보면 prepare-commit-msg.sample라는 후크가 있습니다. 얼마나 편리한 지! 활성화되면 이 후크는 이 저장소에서 작업할 때 git commit 명령이 실행될 때마다 실행됩니다.

githooks Documentation에서 이 후크에 대한 자세한 내용을 읽을 수 있습니다.

git이 실제로 후크를 선택하고 실행하려면 .sample 확장을 제거해야 합니다.

mv .git/hooks/prepare-commit-msg.sample .git/hooks/prepare-commit-msg


편집기에서 .git/hooks/prepare-commit-msg를 열고 자유롭게 예제를 살펴보십시오. 그런 다음 모두 다음으로 바꿉니다.

#!/bin/sh
COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2

DREAM=", hopefully"
if [[ "$COMMIT_SOURCE" == "message" ]]
then
    echo `cat $COMMIT_MSG_FILE`$DREAM > $COMMIT_MSG_FILE
fi


쉘 스크립팅 능력이 부족하기 때문에 이 후크를 매우 간단하게 유지했습니다.

git은 세 개의 인수를 prepare-commit-msg 후크에 전달하지만 우리는 처음 두 개에만 관심이 있습니다.
  • $1는 커밋 로그 메시지가 포함된 파일의 이름입니다. 우리는 낙관적인 메시지를 이 파일에 추가할 것입니다.
  • $2는 커밋 메시지의 소스이며 커밋이 생성되는 방식에 따라 설정됩니다(예: merge , squash 등 또는 일반 이전commit ).

  • 이 경우 커밋 소스가 "message" 인 경우에만 후크가 실행됩니다. 이는 커밋이 -m 플래그를 사용하여 수행되었음을 의미합니다. 원하는대로 자유롭게 수정하십시오.

    실제로 작동하는 것을 보려면 무언가를 커밋해야 합니다.

    git commit --allow-empty -m "adding an empty commit"
    [master 1031a40] adding an empty commit, hopefully
    


    위에서 볼 수 있듯이 커밋 메시지가 ", hopefully" 메시지를 포함하도록 업데이트되었습니다. 다시 확인하려면 git log를 실행하여 다시 볼 수 있습니다.

    결론



    이 게시물이 유익하고 재미있었기를 바랍니다. 후크 자체는 매우 간단하지만 실제로 작업하면서 git 내부에 대한 로그를 배웠습니다.

    전적으로 트윗에서 영감을 받아 작성한 다른 게시물을 보고 싶다면 다음을 고려하세요.
  • Build John Mayer's Customer Service Line with Twilio Voice and Python


  • 읽어 주셔서 감사합니다!

    좋은 웹페이지 즐겨찾기