#19 Git - Branch 실습

김현준·2022년 12월 23일
0

GIT

목록 보기
19/41

이번 시간에는 이전에 배운 branchmerge 를 실습해보는 시간을 가져보도록 하겠습니다. 이전의 #18 Git - Branch 수련 이 글을 먼저 보고 오시는걸 추천합니다.

현재 branch 상황입니다. 메인으로는 master 를 쓸것이고 iss53 이라는 branch 를 새로 만들것입니다.

일단 f10.txt 파일을 만들어 주고 내용을 Hello World 로 해줍니다.
이후 addcommit 을 해줍니다.
이 때 주의해야할 점은 먼저 iss53 branch 를 만들어 버리면 iss53 에서는 f10.txt 가 적용되지 않기 때문에 파일을 먼저 만드셔야 합니다.

이제 git branch iss53 을 통해 새로 만들어 줍니다.

따라서 현재 상황은 위 그림과 같습니다.

이후 iss53 으로 이동해줍시다.

master 에서 파일을 먼저 만든 후에 iss53 을 만들었으므로
f10.txt 파일이 존재하는 모습입니다.

이후 f10.txt 파일의 내용을 수정해주고 add 해줍니다.

commit 도 해줍니다.

따라서 현재 상황은 다음과 같습니다.


이후 hotfix 라는 새로운 branch 를 만들어주고 checkout 으로 이동해줍니다.

f10.txt 파일의 내용은 master 에 있던 내용이 있습니다.

이후 iss53 에서 했던거랑 똑같이 파일을 수정하고 add 하고 commit 해줍니다.

따라서 현재 상황은 위와 같습니다.

이제 merge 를 할 차례입니다.

git checkout master 로 이동해준후 git merge hotfix 로 병합해줍니다.

이때 유심히 봐야할 것은 Fast-forwad 입니다.

즉 현재 상태는 위와 같습니다.
master 에서 새로운 commit 이 생성된게 아니라 hotfix 와 같은 것을 가리키고 있는 것입니다.

git log --branches --graph --decorate 를 실행시
위 그림과 완전 똑같은 형태가 되어있습니다.
상단의 초록색 글자의 masterhotfix 와 동일한 위치에 존재합니다.

이후 hotfix 는 필요없으니 제거해줍니다.


이후 다시 iss53 으로 돌아와서 f10.txt 를 한번더 수정하고 add 합니다.

이때 commit 를 하겠습니다.

그러면 현재 상황은 위 그림과 같습니다.
하지만 이때 git 에서는 Fast-forward 병합을 하지 못합니다. 바로 옆에 있지 않기 때문입니다.
따라서 git 에서는 가장 가까운 조상을 찾은 뒤에 Three-way Merge 방법을 통해 병합합니다.

이후 master 로 이동한 후에 iss53 을 병합해줍니다. 하지만 오류가 발생했습니다.

이때는 다시 master 에서 addcommit 을 다시 해주면 됩니다.

따라서 현재 상황은 이렇습니다.

위 그래프와 옆으로 보면 똑같습니다.

git log --branches --graph --decorate --oneline 명령까지 실행하면 더 간력하게 병합된 모습을 확인 할 수 있습니다.

여기까지 실습을 마치겠습니다.

profile
울산대학교 IT융합학부 22학번

0개의 댓글