출처 : egoing.org
1. 초기 git 버전관리시스템 설정
(1) - default.txt 파일을 가지고 있는 default work 1버전
(2) - default work1 버전에서 파생되어 default.txt 파일과 o2.txt파일을 가지고 있는 o2 work 2버전
(3) - default work1 버전에서 파생되어 default.txt 파일과 master.txt파일을 가지고 있는 master work 2버전
2. master branch에 o2 branch를 병합하여 새로운 버전을 만들기
(1) - git checkout master로 현재 브런치를 master로 만든다
(2) - git merge o2를 하여 o2 브런치를 master 브런치에 병합 한다
(3) - 왜 병합하는지 병합 내용을 Message로 써주고 ESC -> : -> wq 로 빠져나온다
(4) - 이제 우리의 master는 새로운 버전을 가르키게 되고 o2의 최신 버전과 master의 이전 버전을 공통의 조상으로 하는 새로운 master 브랜치의 new 버전이 생기게 된다
3.하나의 default.txt 파일에 2개의 branch로 각각의 변화를 주고 그 둘을 merge하기
(1) - (master branch) default.txt 파일 생성 # title / content # title / content 내용 작성 후 work 1 버전으로 커밋
(2) - o2 branch 생성
(3) - (master branch) default.txt 파일 수정 # title / master content # title / content 수정 후 master work2 버전 으로 커밋
(4) - git checkout o2
(5) -(o2 branch) default.txt 파일 수정 # title / content # title / o2 content 수정 후 o2 work2 버전으로 커밋
(6) - git checkout master
(7) - git merge o2 (master branch를 기준으로 하여 o2 branch를 병합)
(8) - 병합된 새로운 default.txt 파일 버전이 생성됨 # title / master content # title / o2 content
4.하나의 default.txt 파일에 2개의 branch로 공통의 변화를 주고 conflict 해결
(1) - default.txt의 기존 work 1 버전에서 파생된 master work 2버전 생성
(2) - default.txt의 기존 work 1 버전에서 파생된 o2 work 2버전 생성
(3) - (1) 과 (2) 이 후 git checkout으로 HEAD를 master에게 준 git log 상태
(4) - git merge o2 를 하면 현재 branch인 master branch의 master work 2 버전을 중심으로
★ - o2 work 2 버전의 내용이 master work 2 버전의 내용에서 +된 내용이 있는 부분은 합쳐지게 되고
( (1)의 5 번째 줄의 content , (2) 의 5번째 줄의 o2 content)
★ - o2 work 2 버전의 내용이 master work 2 버전의 내용에서 -되거나 다른내용으로 바뀐 부분은
아래와 같은 방식으로 우리에게 보여주고 선택을 하도록 한다
( (1)의 2,3번째 줄과 (2)의 2,3번째 줄)
<<<<<<<<HEAD
master work2 버전의 원래 내용
---------------
---------------
o2 work2 버전의 원래 내용
<<<<<<<< o2
(5) - 아래와 같이 내용을 수정하고 git stauts를 해보면 both modified가 나온다
(6) - 이제 변경된 사항을 git add default.txt 로 stating Area에 올리고
(7) - git commit 명령어를 입력하면 아래와 같이 Confilct 즉 충돌된 파일이 있었고 이를 해결했다는 메세지가 나온다
- ESC -> : -> wq로 빠져나오면 병합 완료
(8) - git log
'GIT' 카테고리의 다른 글
GIT - backup, push (0) | 2020.12.12 |
---|---|
GIT - branch(3 way merge) (0) | 2020.12.11 |
GIT - branch (0) | 2020.12.04 |
GIT - git reset, git revert (0) | 2020.12.04 |
GIT - git bash 단축키 및 명령어 중간정리 (0) | 2020.11.30 |