반응형
01. rebase의 개념
- 브랜치의 시작점을 다른 commit 으로 옮겨주는 행위
- rebase를 이용해 - 신규브랜치의 시작점을 main브랜치 최근 commit으로 옮긴 다음 - fast-forward merge 하는 것
02. rebase 후 merge하기
1) rebase 전
2) rebase 후 fast-forward merge = 강제 fast-forward merge
- 실제로 rebase 후 merge 하고 싶을 시 아래처럼 순서대로 입력하면 끝
## 새로운 브랜치명으로 먼저 이동
git switch 새브랜치명
## 브랜치를 main 브랜치 끝으로 이동
git rebase main
## main브랜치로 이동
git switch main
## fast-forward merge 하기
git merge 새브랜치명
- 단점 : 브랜치끼리 차이가 심할 경우 rebase 시 충동 많이 발생. 하나하나 해결 필요
- 장점
- 3-way-merge말고 강제로 fast-forward merge 하고 싶을 때 - git log시 간결
- 브랜치 필요없이도 코드 잘짜는 고수처럼 보이고 싶을 때ㅋㅋㅋㅋ
3) 그냥 fast-forward merge
- rebase 후 fast-forward merge와 동일
03. squash의 개념
- 새 브랜치에 있던 코드변경사항들이 main 브랜치로 텔레포트하는 것
3-way-merge의 단점
- 3-way-merge된 것들은 매우 복잡해보임
- main 브랜치 git log 출력해보면 3-way-merge된 브랜치들의 commit 내역도 다 같이 출력되어서 더러워짐
04. squash 후 merge하기
1) squash 없이 merge
2) sqash 후 merge
- 아래처럼 순서대로 입력하면 끝
## main브랜치로 이동
git switch main
git merge --squash 브랜치명
## 브랜치에서 만들어놨던 많은 커밋들을 합쳐서 하나의 commit으로 main 브랜치 생성해줌
git commit -m '메세지'
반응형
'git' 카테고리의 다른 글
[git] 9. GIT 명령어 없이 이클립스(IDE)만 이용해 소스코드를 GITHUB에 업로드하는 법 (0) | 2024.07.07 |
---|---|
[git] 8. GIT 파일 복구 (git restore, git revert, git reset) (0) | 2024.07.07 |
[git] 6. GIT 브랜치 (git branch, git switch, git log, git merge, git merge -d) (0) | 2024.07.07 |
[git] 5. GIT 버전 파일들 비교 (git diff) (0) | 2024.07.07 |
[git] 4. GIT 저장소에 커밋하기 (git status, git add, git commit, git log) (0) | 2024.07.07 |