[Git] 이미 push 된 커밋 메시지/제목 수정

ain·2022년 10월 14일
0

git

목록 보기
1/3
post-thumbnail

이미 push 된 commit 수정

마지막에 푸쉬한 커밋을 되돌리는 것은 쉽다. Github Desktop에서 우클릭후 Amend Commit... 을 클릭하면 된다.

하지만 개인 프로젝트 중 간혹 가다 커밋 메시지가 마음에 안들거나 실수로 통일된 커밋 가이드에 벗어난 메시지가 거슬릴 수 있을 것이다. 그럴땐 터미널에서 몇개의 간단한 명령어로 수정이 가능하다.

1. rebase로 커밋을 타고 올라가기

git rebase HEAD~1 -i
여기서 잠깐 rebase가 무엇인지 설명을 해보면, merge와 같은 병합방식 중 하나이다. merge는 기존 커밋기록이 남아있는 반면 rebase는 기존에 있던 것은 사라지고 새로 수정한 커밋만 남는다.

2. pick -> reword 키워드 변경

  1. i 키를 눌러 편집모드로 바꾼 뒤 수정할 커밋 앞에있는 'pick'을 'reword'로 변경

예) 10월 8일의 커밋 메시지를 수정하려면,

pick 1010일 커밋
pick 109일 커밋
reword 108일 커밋
...

그 다음, esc로 편집모드를 빠져나온 뒤 :wq 키를 입력 하면 수정해야할 커밋 목록이 터미널에 주루룩 뜰 것이다.

108일 커밋
# #을 맨앞에 쓰면 무시됨~~
# ~~~~...
...

3. 메시지 수정

여기서 다시 i 키를 눌러 편집모드로 바꾼 후 메시지를 수정. (맨 첫 문자에 '#'을 입력하면 그 수정이 무시가 되기 때문에 주의) 만약 연결해야하는 Issue가 있다면 메시지 뒤에 쓰기!

예)

108일 커밋 수정본 (#1)
# #을 맨앞에 쓰면 무시됨~~
# ~~~~
...

다시 esc 키를 누르고 :wq 입력하여 수정사항 저장을 하면 수정된 커밋 메시지와 함께

Successfully rebased and updated refs/heads/main.

라는 문구가 뜬다.

강제 푸쉬하기

git push --force를 입력하여 강제로 푸쉬.

❗️주의 사항:

  • 메시지 입력 시 특수문자 샵(#)을 넣으면 그 메시지가 무시가 된다. 이번에 Issue와 연결하기 위해 #1 design: work on login ui 이런식으로 작성했더니 메시지가 자꾸 바뀌질 않아서 애를 먹었다😓

  • 기존 커밋을 수정하면 커밋 id가 바뀐다.

  • 강제로 푸쉬하는 것(git push --force)는 협업 시 같은 레파지토리를 공유하고 있는 사람들에게는 자동으로 수정사항이 반영되지 않을 수 있기 때문에 주의해야 한다. push 할때에는 항상 신중히!

profile
프론트엔드 개발 연습장 ✏️ 📗

0개의 댓글