반응형
Git Hooks
Git 상의 이벤트마다 자동으로 실행될 스크립트를 지정하는 방식
프로젝트 폴더 내 .git
> hooks
폴더 확인 (파일 끝에 .sample
을 없애면 훅 실행파일이 된다.)
Gitmoji-cli 활용하기
mac 의 경우 brew install gitmoji
https://github.com/carloscuesta/gitmoji-cli
gitmoji -i
hooks
폴더에 추가된 파일 확인하기 (prepare-commit-msg
실행파일 생성)- 프로젝트에 수정 뒤
git add .
,git commit
하여 진행 - 커밋 추가 뒤 push하여 GitHub에서 확인
git commit
시 깃모지 리스트들이 나열되고 그 중에 고른다.
push
하면 다음과 같이 깃모지가 생성된 것을 볼 수 있다.
gitmoji-cli 훅을 해제하려면
hooks
폴더에서prepare-commit-msg
파일을 삭제해주면 된다.
Git Submodules
- Git Submodules는 프로젝트 폴더 안에 또 다른 프로젝트가 포함될 때 사용하는 기능이다.
사용해보기
두 개의 프로젝트 생성
main-project
,submodule
- 양쪽 모두 파일 생성 및 작성 뒤 커밋
- 두 프로젝트 모두 GitHub에 각각 레포지토리 만들어 올리기
main-project 에서 서브 모듈로 프로젝트 추가
- 전체 과정은 다음과 같다.
git submodule add (submodule의 GitHub 레포지토리 주소) (하위폴더명, 없을 시 생략)
- 프로젝트 폴더 내
submodule
폴더와.gitmodules
파일이 생성된다. - 스테이징된 변경사항 확인 뒤 커밋
- 메인, 서브 모두 수정사항을 만든 뒤
git add.
했을 때 메인 파일만 추적되는 것을 확인할 수 있다.cd submodule
로 서브 프로젝트 폴더로 이동한 후 사용하면 서브 파일에서도 정상 동작한다. 이때, 다시 메인 프로젝트로가면 서브모듈에서의 커밋 사항이 메인프로젝트에서 새로운 변경사항으로 나타나게 된다.
서브모듈 업데이트
메인 프로젝트를 clone으로 받아올 경우 서브 모듈들은 깃 정보만 들어있고 파일 내용을 들어있지 않게된다.
git submodule init (특정 서브모듈 지정 시 해당 이름)
git submodule update
main-project
를 새로운 곳에 clone 한 후 init 해보자.
git submodule update --remote
git pull
의 기능을 서브모듈에서 하는 방식이라고 생각하면 된다.- 서브모듈 안에 또 서브모듈이 있을 시 :
--recursive
추가
본 포스팅은 '인프런 - 제대로 파는 Git & GitHub - by 얄코' 강의를 보고 정리한 내용입니다.
반응형