13.3.3 가지 병합과 충돌 해결하기
master 가지에서는 fortunecow 모듈 개발을, iss01 가지에서는 fortunecow 모듈 테스트를 진행하고 있습니다. iss01 가지에서 테스트가 끝나고 다시 master 가지와 병합하려고 합니다.
administrator@vmgate:~/code/environments/production$ git branch -v
iss01 c881532 Test fortunecow on vm03
* master 62721ff Create motd.pp of fortunecow
git merge 명령으로 병합을 시도하니 manifests/site.pp 파일에서 충돌(conflict)이 발생했습니다.
administrator@vmgate:~/code/environments/production$ git merge iss01
Auto-merging manifests/site.pp
CONFLICT (content): Merge conflict in manifests/site.pp
Automatic merge failed; fix conflicts and then commit the result.
매니페스트 site.pp를 편집기로 열어 봅니다.
administrator@vmgate:~/code/environments/production$ vi manifests/site.pp
HEAD가 가리키고 있는 master 가지와 iss01 가지에서 site.pp 파일의 내용이 다르기 때문에 충돌이 발생했음을 알 수 있습니다. HEAD는 작업 중인 로컬 저장소의 가지를 가리키는 포인터이며, 현재 master 가지를 가리키고 있습니다.
# /home/administrator/code/environments/production/manifests/site.pp # 노드 선언 ... node 'vm03.linuxmastery.kr' { include base <<<<<<< HEAD include fortunecow::install include fortunecow::motd ======= include fortunecow >>>>>>> iss01 } ...