DevOps/Git

[Git] 오래된 commit 내역 수정,변경

sihyeong 2022. 10. 24. 23:29
git rebase -i 이전해시
  • 가장 최근의 commit 내용,메시지 만을 수정할 수 있는 git commit --amend와는 다르게
  • 오래된 commit을 수정할 수 있다.

주의사항

  • 최소한 수정하고자 하는 커밋 내용 바로 뒤를 커밋해시로 전달해야 한다.
  • 만약 10 9 8 7 6 5 4 3 2 1이 커밋되어 있다 치자 3을 수정하고 싶으면
  • git rebase -i 2를 해야한다.
명령어 명령어 설명
p pick 커밋 그대로 두기
r reword 커밋 메시지 변경
e edit 수정을 위해 정지
d drop 커밋 삭제
s squash 이전 커밋에 합치기

 

  • git rebase -i 이전해시 입력하면 저렇게 뜬다.
  • 기본은 pick이고 원하는 변경의 명령어를 아래와 같이 직접 입력한 뒤 저장하면 된다.

 

squash (s)

  • 만약 합치는 s(squash)를 수행할 경우는
  • 8 9 10 에서 9와 10을 합치려면 10에 s를 입력해 주면 됨
  • 그러면 제목 2개를 vi에서 보여주는데 필요없는 1개는 지우고 나머지 하나는 적당히 제목 작성하면 됨

 

edit (e)

  • e로 변경 수정할라하면 해당 지점으로 head가 이동함
  • 거기서 git reset HEAD^으로 수정할 내용들을 불러서 적당히 작업하고 
  • 작업이 끝나면 git rebase --continue 하면 끝