[Git] Git의 추가기능들(Hooks, Submodules)

WOOK JONG KIM·2022년 12월 22일
0

Git&GitHub

목록 보기
17/19
post-thumbnail

Git Hooks

git 상의 이벤트마다 자동으로 실행될 스크립트 지정
-> ex) commit을 할때마다 자동으로 push

.git 폴더안에 hooks라는 폴더 있음
-> 파일 끝에 .sample을 없애면 훅 실행파일이 됨

gitmoji-cli로 활용예 보기

brew로 설치 : brew install gitmoji

이후

gitmoji -i

실행 파일 하나 생성됨

커밋시 이모지 선택하라는 창이 뜸

이후 git push를 하면


Git Submodules

  • 프로젝트 폴더 안에 또 다른 프로젝트가 포함될 때 사용
  • 여러 프로젝트에 사용되는 공통모듈일 때 유용

사용 해보기

  1. 프로젝트 생성

main-project, submodule 양쪽 모두 파일 생성 및 작성 뒤 커밋
두 프로젝트 모두 GitHub에 각각 레포지토리 만들어 올리기

  1. main-project에 서브모듈로 submodule 프로젝트 추가

main-project 디렉토리상 터미널에서 아래 명령어 실행

git submodule add (submodule의 GitHub 레포지토리 주소) (하위폴더명, 없을 시 생략)

-> git submodule add https://github.com/wookjongkim/sub-modules.git

스테이징만 되어있어 커밋해야함

이후 sub 파일과 main 파일 각각 커밋 사항 만듬

git add. 시

메인 프로젝트의 수정 사항 만 스테이지에 올라와있음
-> main project의 깃은 submodule에 관여하지 않는것을 볼 수 있음
-> 이후 푸쉬를 하더라도 반영되지 않음

해당 폴더의 깃에서 직접 커밋을 해주어야 함

이렇게 submodule을 커밋 후 푸쉬하고 나면 main에서

서브 모듈에 변경 사항이 잡힘

즉 서브 모듈을 포함한 메인 프로젝트는 그 파일안에 변경 사항에는 관여하지 않지만, 서브 모듈에 어떠한 커밋이 발생하는 지는 관리

이후 push를 해주면

여기서 sub-modules 클릭 시 서브 모듈 리포지토리로 리다이렉 됨


사용해보기 -2

이전 예시에서 사용한 main-project를 새로운 곳에 clone

단순히 clone 만 한 경우 서브 모듈에 파일들이 없음

git submodule init, git submodule update를 진행한 이후에는 파일이 생성되어있음

만약 submodule에 update 상황이 생겼을 경우

git submodule update --remote

서브모듈 안에 또 서브모듈이 있을 시: --recursive 추가

profile
Journey for Backend Developer

0개의 댓글