Git History 내역 정리와 중복 커밋 제거하기

안지환·2024년 1월 26일
1

Git

목록 보기
5/6

문제 상황

현재 작업한 내역에 이전 Merge 된 Commit에 작업 내역이 포함이 되었습니다. Git History 내역을 확인 해봤는데 Git 선형 그래프에 Merge 시점하고 중복 된 커밋이 생겨 문제가 생겼습니다.

외래키 맺은 Table에 데이터를 추가하라” 커밋 메세지가 중복으로 들어가 있고 최신 Commit이 이전 커밋 시점 중간에 Merge를 해서 위와 같은 Git History가 나오게 되었습니다.

해결 방법

문제를 해결하기 위해서 git rebase -i -r <커밋 해시> 로 문제 발생 이전 시점으로 확인을 해야 합니다.

맨 마지막 시점에서 Merge 된 커밋이 두 개가 연속적으로 붙어 있습니다.

merge -C 0e4aa2e jihwooon-issue-40
merge -C 2a4d6a8 jihwooon-issue-41

이 두 개가 붙어 있기 때문에 Git History 내역에서 선형적인 구조를 이루지 못하게 됩니다.

이 두 Commit 내역을 올바른 위치에 배치를 해야 합니다.

merge -C 0e4aa2e jihwooon-issue-40 은 상단으로 옮겨줍니다.

이때 merge -C 0e4aa2e jihwooon-issue-40 은 Pick 해당 하는 부분에 위에 배치를 해야 합니다.

Pick은 Commit 단위로 merge -C 2a4d6a8 jihwooon-issue-41 내에 포함 하는 Commit 단위로

merge -C 0e4aa2e jihwooon-issue-40 Commit은 Pick 중간에 들어가서는 안됩니다.

위에 배치를 했으면 Label를 추가하고 Label 명을 작성합니다.

**reset** branch-point-3 # Merge pull request #77 from jihwooon/issue-39
**merge** -C 0e4aa2e jihwooon-issue-40 # Merge pull request #79 from jihwooon/issue-40
**label** branch-point-4

이 Label은 현재 이 위치가 시작점이라는 것을 알려주고 현재 브랜치가 Merge가 될 때 마지막 지점을 알려주는 역할을 합니다.

그리고 다음 Reset 부분에 Label 명하고 동일하게 작성합니다.

# Branch jihwooon-issue-41
reset branch-point-3 # Merge pull request #77 from jihwooon/issue-39
merge -C 0e4aa2e jihwooon-issue-40 # Merge pull request #79 from jihwooon/issue-40
**label branch-point-4**
pick 981d18f jest 테스트 속도를 향상하라
pick a7c76f6 books fixture 객체명을 수정하라
pick 889efc6 GitAction 테스팅 속도를 향상하라
label jihwooon-issue-41

**reset branch-point-4** # erge pull request #79 from jihwooon/issue-40
merge -C 2a4d6a8 jihwooon-issue-41 # Merge pull request #81 from jihwooon/issue-41

중간에 중복 된 커밋을 삭제를 합니다.

# Branch jihwooon-issue-40
reset branch-point-2 # Merge pull request #75 from jihwooon/issue-38
merge -C 100a712 jihwooon-issue-39 # Merge pull request #77 from jihwooon/issue-39
label branch-point-3
**pick 8f45e1a 외래키(FK) 맺은 Table에 데이터를 추가하라**
label jihwooon-issue-40

# Branch jihwooon-issue-41
reset branch-point-3 # Merge pull request #77 from jihwooon/issue-39
merge -C 0e4aa2e jihwooon-issue-40 # Merge pull request #79 from jihwooon/issue-40
label branch-point-4
**pick 8f45e1a 외래키(FK) 맺은 Table에 데이터를 추가하라 // <<< 삭제**
pick 981d18f jest 테스트 속도를 향상하라
pick a7c76f6 books fixture 객체명을 수정하라
pick 889efc6 GitAction 테스팅 속도를 향상하라
label jihwooon-issue-41

reset branch-point-4 # Merge pull request #79 from jihwooon/issue-40
merge -C 2a4d6a8 jihwooon-issue-41 # Merge pull request #81 from jihwooon/issue-41

주의!
Commit 내역에 작업한 내역이 다른 Commit과 연관 되어 있다면 삭제 할 때 주의해야 합니다.

Merge 된 Commit 배치가 완료가 되었다면 :wq 저장하고 터미널 환경에 나갑니다.

배치가 정상적 완료가 되었다면 아래 Git History처럼 됩니다.

profile
BackEnd Developer

0개의 댓글