초보도 쉽게 이해하는 git merge 완벽 정리
git merge의 필요성
개발 프로젝트에서 팀원들과 협업하며 일하다 보면 다양한 버전의 코드를 효율적으로 관리해야 하는 상황이 자주 발생합니다. 바로 이때, git merge
가 빛을 발합니다. 이 아티클에서는 git merge
의 개념과 사용법을 초보자도 쉽게 이해할 수 있도록 구체적으로 설명하겠습니다. 어렵게 느껴질 수 있는 병합 과정도 한 단계씩 따라가면 어렵지 않게 익힐 수 있을 것입니다. 준비되셨나요? 시작해보겠습니다!
git merge의 단계별 이해
단계 1: Branch 이해하기
git branch feature
git checkout feature
branch
: 현재 진행중인 작업을 분리하고 독립적으로 개발을 진행할 수 있게 해줍니다.checkout
: 특정 브랜치로 이동합니다.
단계 2: Merge 준비하기
git checkout master
git merge feature
checkout master
: 병합할 대상 브랜치로 이동합니다.merge
: feature 브랜치와 master 브랜치를 병합합니다.
단계 3: 충돌 해결하기 (해당 시)
코드를 병합할 때 같은 부분을 동시에 수정한 경우 충돌이 발생할 수 있습니다. 이런 상황을 해결하지 않으면 코드는 작동하지 않을 것입니다.
git checkout master
git merge feature
이 명령어가 충돌을 일으킨다면, 충돌이 발생한 파일을 열어봐야 합니다. 코드 편집기(예: Visual Studi Code)를 통하여 확인하면 더욱 쉽게 확인할 수 있습니다.
<<<<<<< HEAD
내용 A
=======
내용 B
>>>>>>> feature
이것은master
브랜치에는 "내용 A"가 있고, feature
브랜치에는 "내용 B"가 있음을 의미합니다. 이럴 경우에는 수동으로 충돌을 해결해야 합니다.
단계 4: 병합 완료하기
충돌이 해결되면, 병합을 완료합니다.
git add .
git commit -m "병합 완료"
단계별로 차근차근 알아보기
git merge 플로우 차트
전체적인 플로우를 한 눈에 볼까요? 이 플로우 차트를 통해 git merge
의 전체 프로세스를 한 눈에 볼 수 있습니다.
단계 별 Merge 과정
Branch 생성: 새로운 기능을 개발할 때 사용할 새 브랜치를 생성합니다.
git branch feature-name
Branch로 이동: 새로 생성한 브랜치로 이동하여 작업을 시작합니다.
git checkout feature-name
Output: Switched to branch 'feature-name'
변경 사항 커밋: 변경된 사항을 커밋하여 추적합니다. 이렇게 하면 나중에 변경 내역을 확인하거나 되돌릴 수 있습니다.
git commit -m "commit message"
Output: [feature-name abc1234] commit message
대상 브랜치로 이동: 변경사항을 병합할 대상 브랜치로 이동합니다.
git checkout master
Output: Switched to branch 'master'
Merge 수행: 새로운 브랜치의 변경사항을 현재 브랜치에 병합합니다.
git merge feature-name
Output: Updating a20abac..5f4b5e4 Fast-forward
충돌 해결: 충돌이 발생한 경우 수동으로 수정하고 병합을 완료합니다.
git add .
git commit -m "병합 완료"
Output: [master c0c4b2e] 병합 완료
병합 완료 후 정리: 불필요한 브랜치는 삭제하여 관리를 편리하게 합니다.
git branch -d feature-name
Output: Deleted branch feature-name (was 5f4b5e4).
결론
git merge
는 처음에는 다소 복잡해 보일 수 있지만, 명확한 단계와 실습을 통해 쉽게 익힐 수 있습니다. 충돌 해결은 처음에는 어려울 수 있지만, 협업을 하다보면 반드시 일어나게 되어있고, 의사소통과 git
스킬을 활용해서 해결할 수 있습니다. 협업의 핵심이자 코드의 효율적 관리를 위해 git merge
는 필수적인 스킬로 남을 수 있습니다 !