브랜치란?
브랜치는 버전을 여러개의 흐름으로 나누어 관리하는 방법이다.
⚠️주의사항
Github에서는 master 브랜치가 main브랜치로 불린다.
그렇다면 브랜치의 작명은 어떻게?
최초의 브랜치인 master/main 브랜치가 아닌, 파생되는 브랜치의 작명은 어떻게 해야할까?
정해진 법칙은 없지만, 개발자들의 컨벤션은 있다.
- feature/ '컴포넌트이름' 브랜치: 기능추가하는 브랜치작명 컨벤션
- release/ '컴포넌트이름' 브랜치: 버전 배포를 위한 브랜치 작명 컨벤션
- hotfix/ '컴포넌트이름' 브랜치: 급하게 수정하기위한 브랜치 작명 컨벤션
특정 브랜치에서 작업하기: HIEAD와 체크아웃
- HEAD
- 현재 작업 중인 브랜치의 커밋을 가리킨다
- 일반적으로 현재 작업 중인 브랜치의 최신 커밋을 가리킨다
- 한 마디로 "내가 지금 어디에서 작업 중인가"를 가리킨다
- 체크아웃(checkout)
- 특정 브랜치에서 작업할 수 있도록 작업 환경을 바꾸는 것
- HEAD의 위치를 특정 브랜치의 최신 커밋으로 옮김
머지(merge)의 종류
- fast-forward merge
- master/main 브랜치에서는 3번째 커밋이후로 커밋이 없다가 다른 브랜치의 작업물이 한번에 들어와 마치 빨리감기하듯 브랜치 내용이 업데이트되는 merge기법을 빨리감기 병합(fast-forward merge)이라 한다.
- 일반적인 merge
- master/main 브랜치에서도 커밋이 쌓이고, 다른 브랜치에서도 커밋이 쌓이다가 어느순간 merge하게되는 경우
merge conflict
- 충돌: 병합하려는 두 브랜치가 서로 같은 내용을 다르게 수정한 상황
- 이런 경우 각자의 수정내용중 어떠한 수정내용을 최종결과로 반영할지 git도 모르기때문에 충돌이 발생한다.
이런경우 직접 어떤 브랜치의 내용을 반영할지 선별해야한다.
- 이런 경우 각자의 수정내용중 어떠한 수정내용을 최종결과로 반영할지 git도 모르기때문에 충돌이 발생한다.
브랜치 재배치하기(Re-Base)
브랜치가 시작되는 뿌리(base)를 바꾸는 행위이다.
브랜치 추가하기
브랜치삭제하기
어느곳이든 좋으니, 삭제할 브랜치가 아닌 다른 브랜치로 체크아웃 후 삭제할 브랜치를 삭제하면 된다.
브랜치 머지(merge)하기
- fast-forward merge
- 병합시킬 브랜치로 체크아웃 후 merge시킬 브랜치를 우클릭한 후 병합시킬 브랜치로 merge한다.
- 일반적인 merge
merge conflict 해결하기
-> 이후 다시 커밋하면 된다.
브랜치 재배치하기
1. 이동시키고싶은 브랜치로 checkout
-> 여기서는 foo브랜치를 master브랜치의 4번째커밋으로 re-base하고싶은것이니 foo 브랜치로 체크아웃한다.
2. Re-base의 base를 고른후 재배치하기
그래프가 바뀐 모습을 볼 수 있다.
⚠️리베이스를 할때에도 merge할때와 같이 충돌이 발생할 수 있는데 merge conflict를 해결할때와 마찬가지로 해결해주면 된다.
'내일배움캠프[4기_Reac트랙] > 모두의 git & GitHub' 카테고리의 다른 글
명령어로 깃 다루기 (0) | 2023.02.01 |
---|---|
5. 깃허브로 협업하기 (0) | 2023.01.16 |
3. 버전 가지고 놀기 (0) | 2023.01.01 |
2. 버전관리 시작하기 (0) | 2023.01.01 |
1. 준비하기 (0) | 2022.11.06 |