git

#18 깃(Git) - 브랜치 머지(merge)하기 - 2

에이블디 2021. 11. 25. 16:37

안녕하세요! 에이블디 입니다!

 

이번 시간에는 지난 시간에 이어서 브랜치를 머지하는 방법에 대해 계속 알아보겠습니다.

오늘은 각 브랜치마다 동일한 파일의 다른 위치를 수정했을 때  머지하는 방법에 대해 알아보겠습니다.

 

지난 시간에 master 브랜치와 YAMA 브랜치에 abled.txt 파일이 동일하게 있었던 것 기억하시나요?

master 브랜치와 YAMA 브랜치에서 각각 abled.txt를 수정하되 서로 다른 위치를 수정한 후 브랜치를 머지했을 때 어떤 결과가 나오는지 확인해 보도록 하겠습니다.

 

새로운 상황을 만들기 위해 홈 디렉터리로 이동한 후 merge-test2라는 깃 리포지토리를 만들고, merge-test2 디렉터리로 이동해 주세요!

$ cd ~
$ git init merge-test2
$ cd merge-test2

그리고 vi를 이용하여 abled.txt를 만들고 아래의 스크린 샷과 같은 내용을 입력해 주시고 저장해 주세요!

두 콘텐츠 사이의 공백도 같이 남겨 주세요!

$ vi abled.txt

방금 만든 abled.txt 파일을 스테이지에 올리고 'master 1'이라는 메시지와 함께 커밋해 주세요!

$ git add abled.txt
$ git commit -m "master 1"

master 브랜치에 커밋이 된 것을 확인할 수 있습니다!

 

이제 YAMA라는 새로운 브랜치를 만들어 주세요!

$ git branch YAMA

지난 시간에서 확인했듯이 이제 master 브랜치와 YAMA 브랜치에는 모두 'master 1'이라는 커밋이 있게 되겠죠?

그럼 이제부터 양쪽 브랜치에 있는 abled.txt를 수정해볼 텐데요, 먼저 master 브랜치에서부터 수정해볼게요!

'Jayden content' 밑에 'master content'라고 입력한 후 저장해주세요.

수정한 abled.txt를 'master 2'라는 메시지로 커밋해 주세요!

$ git commit -am "master 2"

마스터 브랜치에 'master 2' 커밋이 잘 된 것을 확인할 수 있습니다.

 

이제 YAMA 브랜치의 abled.txt 파일도 수정해보죠!

먼저 YAMA 브랜치로 체크아웃해야겠죠? 체크아웃을 한 뒤에 abled.txt를 열고 'YAMA content' 아래에 'YAMA branch content'를 입력하고 저장합니다.

$ git checkout YAMA
$ vi abled.txt

수정한 abled.txt 파일을 'YAMA 1'이라는 커밋 메시지와 함께 커밋해 주세요!

$ git commit -am "YAMA 1"

YAMA 브랜치에 'YAMA 1' 커밋이 잘 된 것을 확인할 수 있습니다.

 

그럼 이제 브랜치를 머지하기 위해 master 브랜치로 체크아웃해 볼까요?

$ git checkout master

그리고 master 브랜치와 YAMA 브랜치 양쪽에서 수정된 abled.txt의 작업을 머지해 보도록 하겠습니다!

$ git merge YAMA

머지를 하게 되면 지난 시간과 같이 문서 편집기에 커밋 메시지가 입력된 채로 자동 실행이 되네요!

전 커밋 메시지를 수정하지 않고 그대로 사용하겠습니다.

문서 편집기를 저장해 주시고 종료해주세요!

 

그럼 abled.txt 파일이 어떻게 변화되었는지 확인해 볼까요?

vi abled.txt

master 브랜치의 수정 내용과 YAMA 브랜치의 수정 내용이 하나의 파일에 합쳐져 있네요!

 

그리고 문서 편집기를 열지 않고 문서 안의 내용만 보고 싶을 땐 cat이라는 것을 사용하면 되는데요

한번 사용해 볼까요?

$ cat abled.txt

문서 편집기를 실행하지 않아도 터미널에서 바로 abled.txt의 내용만 확인 가능한 걸 볼 수 있습니다!

 

오늘 각 브랜치에서 동일한 파일에서 다른 위치를 수정했을 때 머지하는 방법에 대해 알아보았는데요!

 

다음 시간에는 동인한 파일에서 같은 위치를 수정했을 때 머지하는 방법에 대해 알아보도록 하겠습니다!

 

그럼 여러분 다음시간에 만나요!