Git 다양한 추가 기능들

nilgil·2022년 1월 24일
0

Git

목록 보기
9/9

코드 작성자 확인하기 (blame)

파일의 각 코드 라인별로 커밋 히스토리를 확인하여 작성자를 알아낼 수 있다.

git blame tiger.yml
git blame -L (시작라인),(끝라인 또는 +라인수) (파일명)

-L : 특정 라인만 확인할 수도 있다.


오류가 발생한 지점 찾아내기 (bisect)

이진 탐색 알고리즘으로 문제의 발생 지점을 찾는다.

  1. 이진 탐색 시작 (start)
  2. 현재위치가 오류 발생 지점임을 표시 (bad)
  3. 의심 지점으로 이동 (checkout)
  4. 오류 발생 여부에 따라 bad/good 실행 반복
  5. 오류 찾고 이진 탐색 종료 (reset)
git bisect start
git bisect bad/good
git bisect reset

start : 이진 탐색 시작
bad/good : 해당 지점의 오류 유무를 표시
reset : 이진 탐색 종료


Git Hooks

커밋 전, 푸시 후 등의 다양한 이벤트마다 자동으로 실행될 스크립트를 지정한다.
스크립트 파일들은 .git의 hooks 폴더에 존재한다.
훅을 해제하려면 해당 스크립트 파일을 제거하면 된다.


gitmoji-cli 사용하기

gitmoji-cli 설치 후 프로젝트의 훅에 적용해야 한다.
이후 프로젝트 수정하고 커밋할 때 이모티콘을 선택할 수 있다.

gitmoji -i

해당 명령어를 실행하면 .git의 hooks 폴더에 스크립트 파일이 생성된다.


서브모듈 사용하기

프로젝트 폴더 안에 또 다른 프로젝트가 포함될 때 사용한다.
이후 submodule 폴더와 .gitmodules 파일이 생성되고 이를 커밋해야한다.
서브모듈의 변경사항은 submodule 폴더에 접근하여 커밋을 해야만 스테이징이 가능하다.

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

여러 프로젝트에 사용되는 공통모듈일 때 유용


서브모듈 업데이트

기본적으로 서브모듈은 clone시 받아오지 않는데 원하는 서브모듈을 받아오기 위해 다음 명령어를 사용한다.

git submodule init (특정 서브모듈 지정시 해당 이름)
git submodule update
git submodule update --remote

--remote : 서브모듈에 원격 저장소의 변경사항 반영
--recursive : 서브모듈 안에 또 서브모듈이 있을 시 추가

profile
전 레코딩 엔지니어의 아웃오브뇌메모리 대비 기록 블로그

0개의 댓글