본문 바로가기

개발일지/TIL

TIL 23-06-01 git rebase drop 해보기

1. git rebase drop 해보기 

 문제점

과거 rebase 사용 중 문제가 발생했을 때 squash를 통해서 log를 합치면서 로그는 줄였지만, 변경사항은 제거하지 못한 경우 발생 

로그는 제거했지만 변경사항은 남은 로그에 함께 합쳐진 상황

 시도해 본 것들

변경 전 log

commit 649f6a86c54dc2bb71d0628432434dc4b61b82a0 (HEAD -> master)
Author: Seman_Kim <sdoramkim@gmail.com>   
Date:   Thu Jun 1 20:10:05 2023 +0900     

    git rebase 테스트

commit 02058c38b927bfb9c6c770b91295357ca2ce9034
Author: Seman_Kim <sdoramkim@gmail.com>   
Date:   Thu Jun 1 20:09:33 2023 +0900     

    test commit 123

commit 749cc38dc4e82268fe62c0609900c68f3d119d3b
Author: Seman_Kim <sdoramkim@gmail.com>   
Date:   Tue May 30 20:35:07 2023 +0900    

    3

commit 3a81d407768cbcbeb89c208bc3ea5a3c0fc9dc78
Author: Seman_Kim <sdoramkim@gmail.com>   
Date:   Tue May 30 20:21:06 2023 +0900    

    first commit

 

변경 후 log

commit a47eb7d20fb855167a03da1bb55c7d7f9af72de5 (HEAD -> master)
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Thu Jun 1 20:09:33 2023 +0900

    test commit 123

commit 3a81d407768cbcbeb89c208bc3ea5a3c0fc9dc78
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Tue May 30 20:21:06 2023 +0900

    first commit

rebase의 영향을 받지 않았다면 hash가 바뀌지 않았다. 

 

맞는지 확인하기 

commit df33a5f09e91d6a082cacbc5192e87ccaaf43e53 (HEAD -> master)
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Thu Jun 1 20:19:15 2023 +0900

    test commit2

commit de4875892bb6bfa3cd54c497857edfc8485ad782
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Thu Jun 1 20:19:00 2023 +0900

    test commit

commit a47eb7d20fb855167a03da1bb55c7d7f9af72de5
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Thu Jun 1 20:09:33 2023 +0900

    test commit 123

commit 3a81d407768cbcbeb89c208bc3ea5a3c0fc9dc78
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Tue May 30 20:21:06 2023 +0900

    first commit

 

commit fa8eb394ad3ea4626da3bb07cc0b71316c8a327e (HEAD -> master)
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Thu Jun 1 20:19:15 2023 +0900

    test commit2

commit a47eb7d20fb855167a03da1bb55c7d7f9af72de5
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Thu Jun 1 20:09:33 2023 +0900

    test commit 123

commit 3a81d407768cbcbeb89c208bc3ea5a3c0fc9dc78
Author: Seman_Kim <sdoramkim@gmail.com>
Date:   Tue May 30 20:21:06 2023 +0900

    first commit

중간에 있는 commit을 삭제하자 그 뒤에 생긴 commit의 hash만 변경 된 것을 확인할 수 있었다. 

 해결 방법

git rebase -i HEAD~[commit개수]
pick 수정 사항 없음
reword 수정할 파일
edit head 이동 
squash or fixup commit 합치기 
drop 로그 삭제 
git rebase -- continue

 알게 된 점

가능하면 사용할 일이 없는 게 좋지만, 이전의 commit을 수정해야할 수 있으므로 지금처럼 미리 써보는 게 실제 필요할 때 매우 도움된다.