페어프로그래밍을 진행하면서 한명의 컴퓨터로 작업을 진행하고, 자신의 로컬로 가져오는 과정을 겪었다. 커밋 내역에 자신의 이름이 들어가지 않아 약간 서운한 크루들이 있을거라고 생각한다.
나도.. 같이했는데.. 🥺 왜 커밋내역에는 페어만 있는거야...
제가 그랬다는건 아니고..ㅎㅎ
새로운 페어 도이에게 commit 내역에 작성자를 두명 이상 남기는 방법이 있다는 것을 알게되어 이를 적용하는 과정을 공유하고자 포스팅을 남기려고 한다.
도움주신 허브, 도이 감사합니당🙇♂️
GitHub에는 특정 문구를 통해 함께 작업한 작성자를 인식한다.
바로 커밋 메시지에 Co-authored-by:
를 접두어로 추가하여 공동 작성 커밋을 만들 수 있다.
원격 저장소에 Push 했을때의 모습
다음과 같은 형태로 작성한다.
Co-authored-by: {GitHubId} <{email}>
아래 내용을 복붙하여 자신의 설정에 맞춰보도록하자!
ex) Co-authored-by: choi-jjunho <junho5336@gmail.com>
이메일은 반드시 GitHub와 연동된 이메일을 사용해야한다.
더 궁금하다면 GitHub 공식문서를 통해 자세히 알아보자.
위와 같이 커밋을 함께 작성하는 방법은 알았다.
하지만 커밋을 할 때 마다 일일히 저 문구를 붙여주는것이 복붙을 한다해도 여간 귀찮은 일이 아닐 수 없다.
Git에는 커밋 메시지 템플릿을 설정해 커밋을 할때마다 지정한 양식을 사용할 수 있다.
이를 통해 자동으로 협업하는 팀원을 넣어보도록 하자.
템플릿 설정을 알기 전 Git Config에 대해 잠시 알고 넘어가도록 하자.
우리가 Git을 사용하는 프로젝트에는 항상 .git 폴더가 존재한다.
Mac의 Finder에서 숨김파일을 보는 단축키!! :
CMD
+SHIFT
+.
.git 폴더 내부에는 git과 관련된 다양한 설정들이 존재하는데
우리가 이번에 활용할 부분은 바로 config
파일이다.
git config 파일은 프로젝트, 사용자 홈 디렉토리, 시스템 루트 디렉토리에 존재하며 각각의 파일별로 범위가 설정된다.
시스템 공통으로 적용되는 설정을 위한 옵션이다.
/etc/gitconfig
파일을 찾아 해당 시스템에 있는 모든 사용자/저장소에 적용된다.
해당 사용자에게만 적용된다.
~/.gitconfig
파일을 찾아 해당 사용자에의 저장소에 적용된다.
아직 Unix 체제의 사용자라는 개념이 익숙하지 않다면
Linux 사용자
라는 키워드를 중심으로 학습해 보는것을 추천드립니다 🥺
프로젝트 내부의 .git 디렉토리의 config 파일 .git/config
파일을 통해 현재 작업중인 저장소에만 적용된다.
위와같은 범위별 설정이 존재하는데 우선순위는 가장 큰 범위부터 순차적으로 덮어쓴다고 생각하면 된다.
시스템 설정 < 사용자 설정 < 프로젝트 설정
Git에는 commit.template
옵션을 통해 커밋 템플릿 메시지를 사용할 수 있다.
현재 작업할 로컬 프로젝트에 대해서 템플릿 메시지를 적용해보도록 하자 (--local 옵션)
템플릿으로 사용할 파일을 생성해준다.
확장자는 txt파일이 되고 파일명은 편의상 .gitmessage
로 두고 진행해보겠다.
.gitmessage
라는 파일명이 마음에 들지 않는다면 다른 이름을 사용해도 무관하다.
위에는 커밋 메시지를 작성할 예정이니 두칸 띄워주고 맨 아래에 Co-authored-by: ...
문구를 넣어준다.
#
으로 주석을 작성할 수도 있다.
이는 커밋에 반영되지 않으므로 주석을 활용하고자 한다면 알아두면 좋다.
템플릿으로 사용할 파일을 만들었으니 템플릿을 설정해줄 일만 남았다.
다음 명령어를 통해 템플릿 설정을 할 수 있다.
git config {범위 옵션} commit.template {템플릿 파일명}
ex) git config --local commit.template .gitmessage.txt
프로젝트의 .git 디렉토리 내부의 config 파일을 보면 다음과 같이 설정이 되어있을 것이다.
다음과 같이 커밋을 할 때 마다 문구가 자동으로 추가되어있는 모습을 볼 수 있다.
만약 IntelliJ를 혹은 다른 IDE를 사용해 커밋을 한다면 위 설정 후 IDE를 재실행 시켜주면 적용되어있는 모습을 볼 수 있다
.gitmessage.txt
의 내용만 변경하고 저장하면 템플릿 메시지를 자유롭게 수정할 수 있다.
마찬가지로 적용이 안된다면 IDE 재실행을 시켜보는것을 추천한다.
CLI 환경이 더 익숙하신 분들 혹은 CLI와 친해지고 싶은 분들을 위한 가이드입니다.
cd {프로젝트 경로}
: 프로젝트 경로로 이동합니다.
cd .git
: .git 디렉토리로 이동합니다.
cat config
: config 파일의 내용을 콘솔에 출력합니다.
cd ..
: 상위 디렉토리로 이동합니다.
touch .gitmessage2.txt
: .gitmessage2.txt 라는 이름의 빈 파일을 생성합니다.
vim .gitmessage2.txt
: vim 에디터를 이용해 .gitmessage2.txt라는 파일을 수정합니다.
git config --local commit.template .gitmessage.txt
: .gitmessage2.txt 파일에 있는 내용을 커밋 기본템플릿으로 사용합니다.
(--local 옵션을 통해 해당 프로젝트에만 적용됩니다.)
vim 사용법은 내용이 길어지니 패스..
CLI 어렵지않아요~~!
아주 중요한 설정은 아니지만 Git의 기능을 잘 활용하여 페어 프로그래밍을 재미있게 할 수 있으면 좋겠습니다 ^^
와 정말 친절하게 알려주시네요👍 페어프로그래밍할 때 써보려고 하트 눌렀습니다 ㅎㅎ