제육's 휘발성 코딩
반응형

Git Hooks

image

Git 상의 이벤트마다 자동으로 실행될 스크립트를 지정하는 방식

프로젝트 폴더 내 .git > hooks 폴더 확인 (파일 끝에 .sample을 없애면 훅 실행파일이 된다.)

Gitmoji-cli 활용하기

mac 의 경우 brew install gitmoji

https://github.com/carloscuesta/gitmoji-cli

image

gitmoji -i
  • hooks 폴더에 추가된 파일 확인하기 (prepare-commit-msg 실행파일 생성)
  • 프로젝트에 수정 뒤 git add . , git commit 하여 진행
  • 커밋 추가 뒤 push하여 GitHub에서 확인

image

  • git commit 시 깃모지 리스트들이 나열되고 그 중에 고른다.

image

  • push 하면 다음과 같이 깃모지가 생성된 것을 볼 수 있다.

gitmoji-cli 훅을 해제하려면 hooks 폴더에서 prepare-commit-msg 파일을 삭제해주면 된다.

Git Submodules

image

  • Git Submodules는 프로젝트 폴더 안에 또 다른 프로젝트가 포함될 때 사용하는 기능이다.

사용해보기

두 개의 프로젝트 생성

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

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

image

- 전체 과정은 다음과 같다.

git submodule add (submodule의 GitHub 레포지토리 주소) (하위폴더명, 없을 시 생략)
  • 프로젝트 폴더 내 submodule폴더와 .gitmodules 파일이 생성된다.
  • 스테이징된 변경사항 확인 뒤 커밋
  • 메인, 서브 모두 수정사항을 만든 뒤 git add. 했을 때 메인 파일만 추적되는 것을 확인할 수 있다.
    • cd submodule 로 서브 프로젝트 폴더로 이동한 후 사용하면 서브 파일에서도 정상 동작한다. 이때, 다시 메인 프로젝트로가면 서브모듈에서의 커밋 사항이 메인프로젝트에서 새로운 변경사항으로 나타나게 된다.

서브모듈 업데이트

image

메인 프로젝트를 clone으로 받아올 경우 서브 모듈들은 깃 정보만 들어있고 파일 내용을 들어있지 않게된다.

git submodule init (특정 서브모듈 지정 시 해당 이름)
git submodule update
  • main-project 를 새로운 곳에 clone 한 후 init 해보자.
git submodule update --remote
  • git pull 의 기능을 서브모듈에서 하는 방식이라고 생각하면 된다.
  • 서브모듈 안에 또 서브모듈이 있을 시 : --recursive 추가

본 포스팅은 '인프런 - 제대로 파는 Git & GitHub - by 얄코' 강의를 보고 정리한 내용입니다.

반응형
profile

제육's 휘발성 코딩

@sasca37

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요! 맞구독은 언제나 환영입니다^^