더북(TheBook)

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
}
...
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.