728x90
320x100
오늘의 궁금증 :
인텔리제이에서 Update Project 를 클릭하면
Merge incoming changes into the current branch 와
Rebase the current branch on top of incoming changes 를 고르라고 뜬다.
둘의 차이가 뭘까?
두 문구의 차이는 커밋 히스토리를 어떻게 만들건지에 대한 선택임
🧩 옵션 1: Merge incoming changes into the current branch
[git merge]
- 현재 브랜치에 원격 변경사항을 병합(Merge) 해서 새로운 병합 커밋이 생김.
- 커밋 히스토리가 분기 + 병합된 형태로 남음.
* Merge branch 'origin/main' into main
|\
| * origin/main 커밋
* | 내 커밋
- 장점: 충돌 이력, 브랜치 흐름을 그대로 볼 수 있음.
단점: 커밋 로그가 지저분해질 수 있음.
🧼 옵션 2: Rebase the current branch on top of incoming changes
[git rebase]
- 현재 브랜치 커밋을 원격 브랜치 커밋 위로 다시 쌓음 (재적용).
- 커밋 히스토리가 일자형(깔끔하게 일렬) 으로 정리됨.
* 내 커밋 2 (replayed)
* 내 커밋 1 (replayed)
* origin/main 커밋
- 장점: 커밋 히스토리가 깔끔함.
단점: 충돌 시 해결이 번거롭고, 협업 중이라면 주의 필요 (이미 푸시한 커밋을 리베이스하면 안 됨).
👀 언제 뭐 쓰면 좋냐면...
상황 | 추천방식 |
개인 프로젝트 | 리베이스 (깔끔한 히스토리) |
협업 중, 이미 푸시함 | 머지 (안전하게) |
충돌 내역을 보고 싶음 | 머지 |
커밋 흐름을 깔끔하게 만들고 싶음 | 리베이스 |
728x90
320x100
'💻 하나씩 차곡차곡 > etc.' 카테고리의 다른 글
[인텔리제이/IntelliJ] 라이브 템플릿(Live Templete)을 활용하여 자동완성 커스텀 하기 (0) | 2024.01.30 |
---|---|
[인텔리제이/IntelliJ] 자바(Java) 프로젝트 초기셋팅 이것저것 (Java 버전, application context 수정, tomcat 서버 설정, maven 위치 설정) (0) | 2024.01.25 |
[intelliJ/인텔리제이] No Python interpreter configured for the module 오류 해결 (2) | 2024.01.02 |
[이클립스/eclipse] 디버깅 단축키 (0) | 2023.12.09 |
[이클립스/eclipse] 디버깅 시, break point 안 잡힐 때 (2) | 2023.12.08 |