[GIT]5. branch 만들고 머지하기

개발 하면서 필요한 기능을 추가 하거나 수정 해야 할경우 기존의 main 혹은 master 브랜치에서 계속 커밋을 해도 되지만
혹시나 잘못된 코드를 커밋하거 기존의 코드를 망치면 어떻게 할까요?
이런 걱정없이 안전하게 새로운 기능을 추가하는 방법이 새로운 branch를 만들어서 머지하는 것입니다.

브랜치 만들기

git branch branchname
git switch branchname

1번째 라인의 코드를 입력하면 새로운 브랜치가 만들어집니다.

2번째 라인으로 그 브랜치로 이동을 할수 있습니다. 그런 다음에 코드를 짜고 작업을 하시면됩니다.

branchname을 feature/cmd-1 이런 이름으로 만들겠습니다.그리고몇번의 커밋을 더 했습니다.

 

MERGE

이제 feature/cmd-1 branch를 master에 머지 하겠습니다. 머지에는 3가지 방법들이 있는데 하나씩 살펴 보겠습니다.

3-way-merge

git switch master
git merge feature/cmd-1



3-way-merge는 위처럼 다른 브랜치에서 커밋한 내역들이 전부 보입니다.

fast-forward

먼저 파일 d를 만들고 여러번의 커밋을 해놓고 시작하겠습니다.
이러한 방식의 머지는 메인 브랜치가 수정사항이 없어서 main에 바로 이어서 커밋이 올라갔으면 할때 하는 방법입니다.

git switch feature/cmd-1
git rebase main
git switch main
git merge feature/cmd-1


하나의 라인으로 정리 되는것을 알수있다. (현제는 리모트 주소와 연결이 안되어있어서 모든 커밋 로그들이 fast-forward 방식처럼 보이는데 후에 원격주소에 연결후에 다시 확인해보자)

squash and merge

08ea84f (HEAD -> feature/cmd-2) edit e
fabdf2a make e
이부분을 하나의 커밋 메시지로 합쳐보겠다

git switch master
git merge --squash feature/cmd-2

–squash 라는 옵션을 붙이고 커밋 메시지를 적어주면 끝이다.

오늘은 브랜치 만드는 방법과 머지를 하는 3가지 방법을 살펴보았습니다. 기본적으로는 3-way-merge를 가장 많이 사용하지만 상황에따라 다른 머지 방법을 사용할때가  있을겁니다.
깃허브 사이트에서 머지요청(Pull requests) 하는게 있는데 이건 원격에 연결한 후에 다루도록 하겠습니다.

Leave A Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다