Merge Rule 은
작업이 끝난 branch 를 다른 branch 에 합칠 때
어떤 기준으로 merge 할지 정해두는 규칙이다.
merge 는 단순히 branch 를 합치는 작업이지만
기준 없이 진행하면
불필요한 commit 이 섞이거나,
안정적이지 않은 코드가 main 에 들어갈 수 있다.
따라서 merge 전 확인 기준을 정해두는 것이 좋다.
merge 를 아무 기준 없이 하면
아래 같은 문제가 생길 수 있다.
- 작업이 끝나지 않은 branch 가 합쳐짐
- commit 기록이 지저분해짐
- 충돌을 제대로 해결하지 않고 merge 함
- 검토되지 않은 내용이
main에 들어감 - 여러 작업이 한꺼번에 섞여 들어감
그래서 merge 전 확인 규칙을 정하면
저장소를 더 안정적으로 관리할 수 있다.
merge 는
작업이 끝났고, 내용이 확인된 branch 만 진행하는 것이 좋다.
보통 아래를 먼저 확인한다.
- 작업이 완료되었는지
- commit 이 정리되었는지
- 불필요한 파일이 없는지
- 충돌이 해결되었는지
- merge 대상 branch 가 맞는지
merge 하기 전에
어느 branch 에 있는지 먼저 확인한다.
example:
git branch
변경 파일과 commit 내용을 확인한다.
example:
git status
git log --oneline
merge 전에 최신 내용을 먼저 반영하는 것이 좋다.
example:
git pull origin main
협업이면 가능하면
리뷰 후 merge 하는 것이 좋다.
가장 기본적인 merge 는 아래처럼 사용한다.
git merge <branch name>
git merge feat/login
이 명령은
현재 branch 에 feat/login 내용을 합친다.
즉, 보통 main 에서 아래처럼 사용한다.
git switch main
git merge feat/login
branch 기록을 그대로 유지하면서 합친다.
example:
git merge feat/login
작업 branch 의 여러 commit 을
하나의 commit 으로 합치고 싶을 때 사용한다.
example:
git merge --squash feat/login
문서 수정이나 작은 작업은
squash merge 도 괜찮다.
미완성 기능은 merge 하지 않는 것이 좋다.
여러 작업이 섞여 있으면
merge 후 관리가 어려워진다.
작업은 별도 branch 에서 하고
검토 후 main 에 merge 하는 흐름이 좋다.
충돌이 났을 때는
기계적으로 처리하지 말고
어떤 코드가 남아야 하는지 확인해야 한다.
작업이 끝난 branch 는 삭제해서
저장소를 깔끔하게 유지하는 것이 좋다.
git switch main
git pull origin main
git merge feat/login
git push origin main
git switch main
git pull origin main
git merge --squash docs/git-manual
git commit -m "DOCS: merge git manual update"
git push origin main
로컬 branch 삭제:
git branch -d feat/login
원격 branch 삭제:
git push origin --delete feat/login
- 작업 중인 branch 를 바로 merge
- 확인 없이
main에 merge - 충돌을 대충 해결하고 merge
- 기능 추가와 문서 수정이 섞인 branch 를 merge
- merge 후 오래된 branch 를 그대로 방치
- 작업 완료 후 merge
- merge 전 status 와 log 확인
- 필요하면 리뷰 후 merge
- 한 branch 에 한 작업만 담기
- merge 후 작업 branch 정리
좋은 merge 규칙은
작업이 완료되고 확인된 branch 만 안전하게 합쳐서 main 을 안정적으로 유지하는 것이다.