이전 포스팅에서는 merge 하는 방법에 대해서 알아봤는데요.
만약 같은 문서를 수정하고 merge하면 어떻게 될까요??
같은문서에 다른위치의 수정 후 병합
먼저 같은 문서에서 다른 위치를 수정하고나서 merge를 해보겠습니다.
홈 디렉터리에서 merge01 디렉터리를 만들어 저장소로 만들고 이동하겠습니다!
그리고 test.txt파일을 만들어서 내용을 작성한뒤(내용은 스크린 샷을 확인해주세요) "test 1"이라는 메세지로 커밋하겠습니다.
$cd ~
$git init merge01
$cd merge01
$vim test.txt
$git add test.txt
$git commit -m "test 1"
t2 브랜치를 만들어주세요!
$git branch t2
$git log
master브랜치과 t2브랜치 모두 최근커밋이 "test 1"입니다.
master 브랜치에 있는 test.txt파일을 먼저 수정해보겠습니다.
$vim test.txt
$git add test.txt
$git commit -m "master test 2"
t2브랜치로 이동하여 test.txt파일을 수정하고 "t2 test 2"메세지로 커밋하겠습니다.
$git checkout t2
$vim test.txt
$git add test.txt
$git commit -m "t2 test 2"
이제 다시 master 브랜치로 이동하여 t2와 병합해보겠습니다.
$git checkout master
$git merge t2
저는 커밋메세지는 깃에서 제공해주는 메세지로 놔두고 저장하겠습니다!
$cat test.txt
master의 test.txt와 t2의 test.txt가 합쳐졌습니다!
같은문서의 같은위치 수정 후 병합
다시 홈디렉터리로 이동해서 merge02 디렉터리를 만들고 저장소로 만들어볼게요!
$cd ~
$mkdir merge02
$cd merge02
$git init
test.txt파일을 만들고 내용을 작성한뒤 커밋해보겠습니다.
$vim test.txt
$git add test.txt
$git commit -m "test 1"
이번에는 위와 아래 사이의 공백을 하나만 뒀습니다
t2브랜치를 만들겠습니다!
$git branch t2
$git log
t2브랜치로 이동하기전 master 브랜치에서 test.txt파일을 수정해보겠습니다.
$vim test.txt
$git add test.txt
$git commit -m "master test 2"
t2 브랜치로 이동하여 test.txt를 수정하겠습니다!
$git checkout t2
$vim test.txt
$git add test.txt
$git commit -m "t2 test 2"
이제 다시 master 브랜치로 이동하여 merge 해볼까요?
$git checkout master
$git merge t2
충돌이 발생했습니다!
충돌이 발생했을경우 문서는 자동으로 병합될수 없으므로 사용자가 해당 문제를 해결한뒤 커밋해야합니다.
test.txt파일을 확인해볼까요??
$vim test.txt
<<<<<<<HEAD와 ====== 사이의 master content 2는 현재 HEAD가 가르키고 있는 master 브랜치에서의 수정내용이고 =======와 >>>>>>>>t2 사이의 t2 content 2는 t2 브랜치에서 수정한 내용입니다.
이부분에서 사용자가 다시 수정을 한뒤에 커밋을 해야합니다.
이와 같이 수정을 하고 다시 커밋하겠습니다!
커밋 메세지는 "merge t2 branch"로하겠습니다.
$git add test.txt
$git commit -m "merge t2 branch"
정상적으로 커밋이 되었습니다!
$git log --oneline --branches --graph
그래프로 확인해보니 "test 1"에서 분기되었고 각각 "master test 2", "t2 test 2"로 커밋되고 병합된것을 확인할수 있습니다.
merge 후 더이상 사용하지 않는 브랜치를 삭제할수 있습니다.
그렇지만 삭제를 하더라도 브랜치가 완전히 지워지는 것이 아니라 같은 이름으로 브랜치를 다시 만들면 이전 내용을 다시 볼수있는데요.
우선 현재 브랜치를 확인해볼까요?
$git branch
master 브랜치과 t2 브랜치가 있을것입니다.
저장소의 기본브랜치는 master 브랜치 이므로 브랜치의 삭제는 master 브랜치에서 이루어져야합니다.
브랜치를 삭제할때는 git branch에 -d 브랜치명 옵션을 추가하면 삭제할수 있습니다.
$git branch -d t2
삭제 되었다는 메세지가 나왔습니다!
$git branch
다시 브랜치를 확인해보면 정말 삭제 되었습니다!
본 포스팅은 DO it! 지옥에서 온 문서 관리자 깃&깃허브 입문 도서를 참고하며 공부한 내용을 포스팅 하였습니다.
'Git > Github' 카테고리의 다른 글
[Git & GitHub] 수정중인 파일 되돌리기(git stash) (0) | 2022.06.22 |
---|---|
[Git & GitHub] branch 관리 (0) | 2022.06.21 |
[Git & GitHub] 브랜치(branch) 병합(merge) (0) | 2022.06.19 |
[Git & GitHub] 브랜치정보확인(새로운 브랜치에서 커밋) (0) | 2022.06.18 |
[Git & GitHub] 브랜치(branch) 만들기 (0) | 2022.06.17 |