가자공부하러!

Github 기초(2) - 브랜치 생성, 브랜치 병합, 충돌 해결 본문

공부/버전관리(Github, Gitlab...)

Github 기초(2) - 브랜치 생성, 브랜치 병합, 충돌 해결

오피스엑소더스 2019. 11. 4. 16:34

환경설정https://dotheright.tistory.com/254 (Github 기초(1) - 로컬에 생성된 프로젝트를 새 원격저장소에 저장)

 

1. 브랜치 생성


1. 새 브랜치 생성

 1.1. 브랜치 버튼 클릭

 1.2. 새 브랜치 이름 입력

 1.3. 브랜치 생성 버튼 클릭

 1.4. 브랜치 생성 버튼을 클릭하는 시점(1.1)에 선택되어 있던 브랜치의 내용이 똑같이 복사됨

1. 새 브랜치 생성

2. 기존 master 브랜치에 없던 내용을 새 브랜치에 입력하고 커밋

2. 기존 master 브랜치에 없던 내용을 새 브랜치에 입력하고 커밋

3. 새 브랜치에서 작업한 내용이 잘 저장되었는지 확인

 3.1. github 레파지토리에서 확인

 3.2. 브랜치를 변경할 때 마다 IDE에서 소스코드 변동내용 확인

  - 브랜치 변경은 소스트리 좌측 브랜치 부분에서 선택할 브랜치 더블클릭

3.2. 브랜치 변경

 

 

2. 브랜치 병합


1. master 브랜치를 test 브랜치로 병합

 - 메인 브랜치(master)를 개별 구성원의 브랜치(test)로 종종 병합하는 것이 추천됨

  > 충돌을 최소화 하기 위한 방법 중 하나

 1.1. test 브랜치 선택(더블클릭)

 1.2. master 브랜치 오른쪽 클릭

 1.3. 현재 브랜치로 master 병합

 1.4. push를 통해 원격저장소(github)에 병합내용 저장

1. master 브랜치를 test 브랜치로 병합

2. test 브랜치를 master 브랜치로 병합

 - 개별 구성원의 작업이 어느정도 안정성을 갖추었을 때 메인 브랜치에 적용하기 위해 수행하는 작업

 - 1번과 동일

2. test 브랜치를 master 브랜치로 병합

 

3. 충돌 해결


1. 충돌 테스트 코드 작성

메시지를 다르게 작성

2. 병합을 시도했을 때 충돌(conflict) 확인

충돌 메시지
충돌이 발생했을 때 SourceTree에서의 화면

3. 충돌 해결 방법

 3.1. 직접 소스코드 수정

  - HEAD ~ ====  : 현재 브랜치의 소스코드

  - ==== ~ master : 병합 대상 브랜치의 소스코드

 3.2. SourceTree에서 충돌 해결

  3.2.1. '내것'을 이용해 해결 -> 현재 브랜치(test)의 소스코드를 사용

  3.2.2. '저장소'것을 사용하여 해결 -> 병합 대상 브랜치(master)의 소스코드를 사용

SourceTree에서 충돌 해결

 3.3. 충돌 해결 후 레파지토리에 병합, 충돌해결 내용 저장(커밋, 푸시)

3.2에서 '저장소'것을 사용하여 해결을 선택한 결과

 

Comments