브랜치와 병합
작업을 갈라 놓고 나중에 합칩니다. 브랜치가 가볍다는 것을 이해하면 GIT 을 쓰는 방식이 달라집니다.
학습 목표
- 브랜치를 만들어 작업을 분리할 수 있다
- 병합하고 충돌을 직접 해결할 수 있다
- 브랜치 이름 규칙과 기본 전략을 안다
브랜치는 커밋을 가리키는 이름표일 뿐입니다. 파일을 복사하지 않으므로 만들고 지우는 데 비용이 거의 없습니다. 그래서 GIT 에서는 기능 하나, 버그 하나마다 브랜치를 만드는 것이 정상입니다. git switch -c 이름 으로 만들면서 그 자리에서 옮겨 타고, 작업이 끝나면 원래 브랜치로 돌아와 합칩니다.
합치는 방법은 git merge 입니다. 두 브랜치가 서로 다른 파일을 고쳤다면 GIT 이 알아서 합칩니다. 같은 파일의 같은 줄을 서로 다르게 고쳤다면 GIT 은 짐작하지 않고 충돌(conflict)을 표시한 뒤 멈춥니다. 충돌은 오류가 아니라 "여기는 사람이 결정하라"는 신호입니다.
충돌이 나면 파일 안에 <<<<<<<, =======, >>>>>>> 표시가 들어갑니다. 위쪽이 현재 브랜치, 아래쪽이 가져오는 브랜치의 내용입니다. 둘 중 하나를 고르거나 둘을 합쳐 올바른 코드를 만들고, 표시 줄을 모두 지운 뒤 git add 하고 커밋하면 병합이 끝납니다. 브랜치 이름은 feature/, fix/, chore/ 처럼 목적을 앞에 붙이면 목록만 봐도 무슨 일인지 보입니다.
이 단계에서 익히는 명령어
눈으로 읽지 말고 터미널에 직접 쳐 보세요. 손이 기억해야 실무에서 나옵니다.
git switch -c feature/login- 브랜치를 만들면서 그 자리에서 옮겨 탑니다.
git switch main- 합쳐 넣을 대상 브랜치로 돌아옵니다.
git merge feature/login- 작업이 끝난 브랜치를 합칩니다. 충돌이 나면 GIT 이 멈추고 결정을 요구합니다.
git branch -d feature/login- 병합이 끝난 브랜치를 지웁니다. 정리해 두어야 목록이 읽힙니다.