Merge시 create a merge commit과 rebase and merge 차이
머지시 create a merge commit과 rebase and merge 차이
create a merge commit
: 머지시 머지커밋이 생성됨.
- develop브랜치생성 > 커밋 3개 생성
- master브랜치에서 커밋3개 생성
- master브랜치체크아웃상태에서 develop브랜치를 머지
git merge develop
rebase and merge
: 머지커밋이 생성안됨.- 많은 사람이 기여하면 리베이스앤머지전략을 사용함
- ex) 모던자바스크립트 한국어저장소 ko저장소
- 아래 사진처럼 한 줄로 깔끔하게 커밋내역을 관리할 수 있고 순서가 정확히 나타나기 때문에
HEAD~1
과HEAD~2
가 뭔지 한 번에 알 수 있다.
- develop브랜치생성 > 커밋 3개 생성
- master브랜치에서 커밋3개 생성
- master브랜치에체크아웃상태에서 develop브랜치를 리베이스
git rebase develop
머지커밋에서 head~1과 head2가 뭘 가르킬까?
위의 사진에서 아래 3단계가 진행된 상태이다. 여기서 HEAD~1과 HEAD~2는 어떤 커밋을 가르킬까?
- develop브랜치생성 > 커밋 3개 생성
- master브랜치에서 커밋3개 생성
- master브랜치에서 develop브랜치 merge
- 체크아웃된 브랜치에 따라 가르키는 값이 다르다.
- master브랜치에서 HEAD~2했을떼
- develop브랜치에서 HEAD~2헸을때
- master브랜치의 커밋내역은 변경되지않는다.