커밋 수정하기 - 2

박태영·2024년 6월 15일
0

git

목록 보기
21/44

git rebase -i (커밋 해시)

  • i는 interactive 모드의 약자
  • 과거의 commit을 분할/삭제/병합
  • 커밋 해시는 수정할 커밋(들)의 바로 이전 커밋 해시 값
  • git rebase -i 명령어 리스트

    명령어설명
    p(pick)커밋 그대로 두기
    r(reword)커밋 메시지 변경
    e(edit)수정을 위해 정지
    d(drop)커밋 삭제
    s(squash)이전 커밋에 합치기

과거의 commit 메시지 수정하기

  1. git rebase -i 명령어를 입력하고 나온 창에서 수정할 commit 앞의 기호를 'r' 로 바꾸어준다.
  2. 나타난 에디터 창에서 값을 수정/저장한 뒤에 창을 종료한다.
  3. 과거의 commit 메시지가 잘 수정 되었는지 확인한다.

과거의 commit 삭제 / 병합하기

  1. git rebase -i <커밋 해시> 입력후 삭제할 커밋 앞에 d 합칠 commit들 중 앞에 커밋에 s를 입력한 후 저장한다.
  2. commit 삭제는 바로 완료되고 두개의 commit을 합치는 에디터가 나오는데 내용을 수정 후에 저장하고 에디터를 닫는다.
  • 현재 브랜치 상황
  1. 2개의 커밋이 하나로 합쳐진 것을 확인할 수 있다

과거의 commit 분할하기

  1. 이전과 마찬가지로 git rebase -i 커밋해시값 을 입력한다.
  2. 수정할 커밋 앞의 값을 e로 수정한다.
  3. git log로 현재 상태를 보면 수정할 커밋이 되어있는 상태이다
  4. 해당 커밋을 나누기 위해 git reset --mixed HEAD^를 입력해서 작업 내역을 working directory로 옮긴다.
  5. 작업 내역을 하나씩 commit 한다
  • 현재 과정 그래프
  1. 현재 rebase 과정 중이므로 과정을 완료하기 위해
    git rebase --continue를 입력해 진행한다.
  2. 완료된 모습

  • 과거의 내역을 수정하는데 rebase가 쓰이는 이유
  1. 가장 최신의 commit은 과거의 모든 커밋의 변경점의 합이다.
  2. 따라서 과거의 커밋을 수정하기 위해서는 해당 커밋과 그 이후의 모든 커밋이 수정되어야 한다.
  3. 그래서 수정되는 commit전 부터 브랜치를 새로 만들어서 rebase로 전부 하나씩 수정한 후에 main branch에 붙이는 방식이 적합하다.
profile
어른 아이

0개의 댓글

관련 채용 정보