내가 한 노력들

[ Git ] branch 이용하기 ( + branch 충돌 해결 방법) 본문

IT 공부/git

[ Git ] branch 이용하기 ( + branch 충돌 해결 방법)

JONGI-N CHOI 2022. 1. 19. 12:00

main branch 가 default로 생성된다. 

main branch는 항상 안정화된 상태여야기 때문에, 다른 브랜치를 생성해서 merge하는 과정으로 개발해야한다. 

 

branch 목록보기

git branch

위에 설명했듯이 git 은 기본적으로 main이라는 branch가 default로 생성되게 됩니다. 

그렇기 때문에 git branch로 확인해보면 main이라는 branch가 존재하는 것을 확인할 수 있습니다.

 

branch 생성하기

git branch <branch 명>

생성하고 싶은 branch명을 뒤에 적어주게되면, 새로운 branch를 생성할 수 있습니다. 

develop이라는 branch를 생성하고 목록을 확인해보면, develop branch가 추가된 것을 확인할 수 있습니다.

 

사진을 보면, main branch앞에 "*" 가 붙어있는 것을 볼 수 있는데 현재 가르키고 있는 branch가 main이기 때문입니다. 

그러면 develop branch로 이동하기 위해서는 

 

branch 변경하기

git checkout <branch 명>

git checkout 명령어를 이용하면, develop branch가 가르켜지는 것을 확인할 수 있습니다.

 

working dir에 있는 파일하나의 내용을 위와같이 변경하고 add -> commit 을 진행합니다. 

 

그리고, git log를 통해서 commit 기록을 확인해보면, 

위의 사진을 보면, 새롭게 Add moduel [ Sub ]가 추가되고 HEAD -> develop인 것을 볼 수 있습니다. 

즉 develop branch에서 새롭게 추가한 커밋이라는 것 입니다.

 

그러면, 이번에는 다시 main branch에 돌아와서 위의 변경된 내용을 합쳐보겠습니다. 

 

git checkout main

그러기 위해서 다시 main branch로 이동한 뒤

 

merge 병합하기 

git merge develop

git merge 명령어를 이용해서 develop branch의 내용을 병합합니다. 

 

그리고 다시 git log를 통해서 확인해보면, 

Add module [ Sub ]의 기록에 HEAD -> main, develop 으로 변경된 것을 확인 할 수 있습니다. 

하지만, 아직은 remote repo도 적용된 것은 아니니 git push를 통해서 remote에도 동기화를 합니다.

 

 

branch 삭제하기

develop branch의 역할이 끝났으니, 삭제를 해줍니다. 

git branch -d <branch 명>

 


branch간의 충돌이 있을 경우!!

git branch develop
git checkout develop

우선 이번에도 develop이라는 branch를 생성하고, 이동합니다. 

 

 

그런 다음 working dir에 있는 파일을 위와같이 변경합니다. 

 

변경 사항을 add와 commit을 진행하고 

 

git log 를 확인해보면, 

위에서 진행한것 그대로 commit이 develop branch로 적용된 것을 확인할 수 있습니다. 

 

이번에는 main branch로 돌아가서 

git checkout main

 

working dir에 파일을 위와같은 형태로 저장해서 

add 와 commit 을 진행합니다. 

 

그리고 git log로 목록을 확인해보면 

main brnach의 commit 내용은 확인이 되지만, develop branch에서 적용한 commit 은 확인이 안되는 것을 볼 수 있습니다. 

 

현재는, develop branch와 main branch의 파일의 내용이 전혀 다른 상태고, commit 도 다른 상태입니다. 

이 상태에서 merge를 진행하게 되면,

 

위와같은 에러 메세지로, merge를 진행할 수 없다고 나오게됩니다. 

 

working dir에 있는 파일을 확인해보면 

사진처럼, 두 branch의 다른 부분을 표시해주고 있습니다. 

 

파일을 위와같이 변경하고 저장을해서 다시 add와 commit 을 진행합니다. 

 

 

그리고 git log로 목록을 확인하면

 

이제는 develop branch에서 commit한 내용과 main에서 추가한 commit이 잘 보이게 됩니다. 

 

그러면 remote repo로 push를 진행하고 

 

develop branch는 삭제합니다.