git 커밋로그 정리정돈

ALRDTP·2023년 2월 15일
0

git rebase interactive 기능을 이용해 커밋 히스토리를 수정할 수 있음

1. 먼저 커밋 해시를(이용할거라면) 확인한다

git log --pretty=oneline

2. 커밋 해시나 HEAD를 기준으로 수정 시작할 지점을 선택할 수 있다.

git rebase -i [커밋해시]
git rebase -i HEAD~[n]

명령어를 실행하면

pick 1234567 이건커밋입니다
pick 1357246 이것도커밋입니다

# command :
# p, pick <commit> = 커밋을 사용합니다
# r, reword <commit> = 커밋을 사용하지만 커밋메시지를 수정합니다
# e, edit <commit> = 커밋을 사용하지만 수정하기 위해 중지합니다
# s, squash <commit> = 커밋을 사용하지만 이전 커밋에 융합됩니다
# f, fixup <commit> = "squash"와 비슷하지만 이 커밋의 로그 메시지를 폐기합니다
# x, exec <command> = 명령(줄의 나머지 부분)을 쉘을 통해 실행합니다
# b, break = 여기서 중지합니다(이후에 'git rebase --continue'를 통해 리베이스를 마저 진행합니다)
# d, drop <commit> = 커밋을 제거합니다
# l, label <label> = 현재 HEAD에 이름을 붙여 라벨을 만듭니다
# t, reset <label> = HEAD를 라벨로 되돌립니다
# m, merge [-C <commit>| -c <commit>]<label> [# <oneline>]
# -		원본 커밋의 메시지를 사용하여 합병 커밋을 생성합니다(원번 합병 커밋이 지정되지 않는다면 일렬로 생성합니다). 커밋메시지 변경을 위해서는 -c <commit>을 사용하시오.
#
# 재정렬 될 수 있고, 위에서 아래로 실행됨

이런 편집기 화면이 나온다.
[명령어][커밋해시] [커밋메시지] 순으로 interactive rebase할 커밋 로그가 출력된다.




특정 커밋의 커밋메시지 수정하기

1. 수정하고싶은 커밋 앞의 명령어를 pick에서 reword로 변경한다.

pick 1234 정상메시지1
reword 5678 오타메시지
pick 8123 정상메시지2
pick 2645 정상메시지3

새로운 편집기 화면이 뜬다.

2. 새로운 메시지를 입력하고 저장한다.

오타아님메시지

# 주석 어쩌구저쩌구
# 샬라샬라
# '#'으로 시작하는 줄은 무시된다 메시지를 입력하지 않으면 중지도니다.
# 변경사항정보 주르륵

커밋 로그를 다시 확인해보면 git log 커밋 메시지가 정상적으로 수정된 것을 확인할 수 있다.




여러 개의 연속된 커밋을 하나로 합치기

1. squash 명령어를 입력해주면 이전 커밋에 병합된다.

pick 1234 여기에 합치겠다
squash 5678 이거랑
squash 8123 이거를
pick 2645 정상 커밋

시간 오름차순으로 정렬되어 있으므로 1234 커밋에 5678, 8123 커밋이 모두 합쳐지게 된다.
편집기를 저장 종료하면

# 첫번째 커밋 메시지 : 

여기에 합치겠다.

# 두번째 커밋 메시지 : 

이거랑

# 세번째 커밋 메시지 : 

이거를

# 주석 어쩌구저쩌구
# 샬라샬라
# '#'으로 시작하는 줄은 무시된다 메시지를 입력하지 않으면 중지도니다.
# 변경사항정보 주르륵

이런 편집기 화면이 나온다.

2. 최종 커밋메시지를 작성하고 저장해준다.

커밋세개를합쳤다 ㅎ

# 주석 어쩌구저쩌구
# 샬라샬라
# '#'으로 시작하는 줄은 무시된다 메시지를 입력하지 않으면 중지도니다.
# 변경사항정보 주르륵

0개의 댓글