* merge의 기본 메커니즘
- 새로운 이슈가 발생한다면 main(master) 브랜치가 아닌 새로운 issue 브랜치를 생성한다.
$ git checkout -b 'issue branch'
- issue 브랜치에서 작업을 진행한다.
- 중요한 문제나 에러가 발생할 시 main(master) 브랜치로 돌아와 hotfix브랜치를 하나 생성한다.
- hotfix브랜치에서 문제를 해결한 후 main 브랜치에 merge한다!
- 다시 issue 브랜치로 돌아가서 작업한다.
* merge의 종류
- fast forward merge
별다른 merge과정 없이 최신 커밋으로 이동하는 merge
merge완료 후 필요없는 브랜치(보통 hotfix)는 삭제한다.
브랜치중 하나가 다른 브랜치의 이전 커밋에 위치할 경우 사용 가능하다!

- 3-way merge
분기가 나뉜 후의 브랜치들을 커밋할 때 사용한다!
분기된 커밋 두개 + 공통된 조상 커밋 하나를 이용해 새로운 merge 커밋을 만든다.
불필요한 커밋(여기서는 issue커밋)은 삭제해준다.
git branch -d iss53

- 충돌
merge하는 두 브랜치에서 같은 파일의 한 부분을 동시에 수정할 때 발생한다.
git status에서 unmerged라는 메시지를 통해 확인할 수 있다!
충돌내용 해결시 ======== 위아래로 충돌한 내용을 볼 수 있다. 두 내용을 적절히 조절해서 ===== 을 지우면 충돌이 해결된다.
이후 git add > git commit을 이용해서 해결한다.
커밋 완료후 메시지는 confilcts~로 기존 커밋과 조금 다른걸 확인할 수 있다!
+ branch의 옵션들
- branch 관리
- git branch : 브랜치 목록 나열
- *이 붙은 브랜치 : HEAD가 가리키는 녀석
- 옵션
- + branchname : 브랜치 생성
- -d : 브랜치 삭제
- -v : 커밋 메시지 포함한 목록 나열
- —merged : merge된 브랜치 목록 나열
- 여기서 *가 안붙은 브랜치들은 삭제해도 무방하다. 이미 merge 되었기 때문이다.
- —no-merged : merge가 진행되지 않은 브랜치 목록 나열
- 아직 merge하지 않은 커밋을 담고 있기 때문에 -d로 삭제 할 수 없다.
- 삭제하고 싶다면 -D로 삭제가능하다.
- git branch : 브랜치 목록 나열
'TIL' 카테고리의 다른 글
| 인출, 교차학습(어떻게 공부할 것인가 독후감) (0) | 2022.06.29 |
|---|---|
| git branch workflow(22.06.27TIL) (0) | 2022.06.27 |
| Github의 기능들 - branch(22.06.23 TIL) (0) | 2022.06.23 |
| Git & Github (22.06.17 TIL) (0) | 2022.06.17 |
| Hello megaterap! (0) | 2022.06.14 |