-
TIL-2024.07.04 - TIPS - 다중 commit 하나로 합치기> 기초/도와줘요! 2024. 7. 4. 15:28
도와줄 내용:
- 다른 Branch(test) 에서 Commit 한 내용을 하나의 Commit 으로 합쳐서 Main Branch (이하 origin main ) 로 PR 날리는 방법
작업 방향:
1. 작업한 내용 커밋
- 다른 Branch (test)에서 작업한 내용을 commit 1,2,3 로 commit 함.
- 여기서, commit-1 , commit-2 , commit-3 을 하나의 commit 으로 묶을 예정
2. 다른 브랜치에서 리베이스 작업 수행
// test 브랜치를 main 브랜치로 리베이스 git checkout test git rebase -i main
- 여기서 -i 플래그는 인터랙티브 모드로 rebase를 실행하여, 텍스트 편집기가 열리면서 rebase에 포함될 커밋 목록이 나타남.
3. 커밋 합치기
- 해당 단계는 커밋을 합치거나 수정하는 단계
- git rebase -i main 을 입력하고, 엔터를 클릭하면 아래와 같은 텍스트 편집기가 열림
- 이렇게 열린 텍스트 편집기에서 i 를 눌러 insert mode 에 진입하고 commit-2 와 commit-3 의 pick 을 s 혹은 squash 로 변경
- 이때, 첫번째 commit 인 commit-1 은 건들이면 안되는데, 그 이유는 첫 번째 커밋이 기준 커밋(base commit) 역할을 하기 때문
- 나머지 커밋들은 이 첫 번째 커밋에 합쳐지는 형태로 동작하여 첫 번째 커밋의 커밋 메시지가 합쳐진 커밋의 기본 메시지가 됨
- esc 버튼을 눌러 insert mode 을 탈출하고, :wq 를 입력하고 enter 키를 눌러서 저장 후, 완료
- 텍스트 편집기 1 이 완료되면 텍스트 편집기 2가 노출
4. 커밋 메시지 합치기
- 해당 단계는 작성된 커밋 메시지를 하나로 합치는 작업
- 여기서도, i 를 눌러 insert mode 에 진입하고 아래의 사진과 같이 변경 (# 을 앞에 입력하여 주석 처리하거나, 지우기)
- 그 이후, 하나로 합쳐지는 커밋의 메시지를 설정하면 됨
- # 를 통해 주석 처리하고 새로운 commit 메시지를 new commit final 로 설정하고 esc 누른 후, :wq 로 작업 내용 저장
5. develop 브랜치로 변경 사항 적용
- 위의 단계를 거치면, commit log 가 변경된 것을 확인할 수 있음.
- 그 이후, git rebase test 를 하여 브랜치가 특정 기준 브랜치의 최신 변경사항 위에 재배치
- 그 이후 git push origin main 으로 test branch 에서 작업한 내용을 origin main 으로 push
주의사항
- 공유된 브랜치에서 리베이스하지 않기
- 리베이스 중 충돌 처리 : 리베이스 중 충돌이 발생할 경우, 충돌을 해결 한 후 작업 진행
- 백업 및 준비 : 혹시 모를 사태에 대비하여 git checkout -b new-test 로 작업 내용 저장
'> 기초 > 도와줘요!' 카테고리의 다른 글
TIL-2024.07.01 - TIPS - React + Docker + Nginx + Git Action (0) 2024.07.01 TIL-2024.04.14 - TIPS - Map() sort 방법 (value 먼저 key 다음) (0) 2024.04.14 TIL-2024.02.16 - Tips - .sort() 와 .sort((a,b) => a-b)) 차이 (0) 2024.02.16 001_JS_Object 타입에서 원하는 값 찾고 바꾸기 (0) 2022.06.20