Git Merge 명령 정리
페이지 정보
본문
git merge는 여러 브랜치의 변경 사항을 하나로 합칠 때 사용하는 명령어입니다. 팀 협업이나 기능 개발 후 메인 브랜치에 통합할 때 주로 사용합니다. 이 포스트에서는 Git에서 merge와 관련된 주요 명령어와 개념을 정리합니다.
1. 기본 머지 명령 (git merge)
git merge <브랜치명>
기능: 다른 브랜치의 변경 사항을 현재 브랜치에 병합합니다.
예시:
git checkout maingit merge feature/login
설명:
feature/login 브랜치에서 작업한 내용을 main 브랜치에 병합합니다.
병합이 완료되면 새로운 커밋이 생성됩니다.
2. Fast-forward 병합
git merge --ff <브랜치명>
기능: Fast-forward 방식으로 병합합니다.
특징:
브랜치가 한 줄로 이어지며, 별도의 병합 커밋이 생성되지 않습니다.
두 브랜치 사이에 변경 사항이 충돌하지 않을 때만 가능합니다.
예시:
git checkout maingit merge --ff feature/signup
3. No Fast-forward 병합 (git merge –no-ff)
git merge --no-ff <브랜치명>
기능: 강제 병합 커밋을 만듭니다.
특징:
Fast-forward 병합이 가능해도 별도 병합 커밋을 생성합니다.
프로젝트의 병합 기록을 명확하게 남기고 싶을 때 유용합니다.
예시:
git checkout maingit merge --no-ff feature/payment
4. 충돌 해결 후 병합 완료
병합 중 충돌이 발생하면 Git이 병합을 중단하고, 사용자가 직접 충돌을 해결하도록 합니다.
1. 충돌 파일 수정
충돌이 발생한 파일을 열고, 원하는 내용을 남깁니다.
2. 수정된 파일 스테이징
git add <파일명>
3. 병합 커밋 완료
git commit -m "Resolved merge conflict"
5. 병합 상태 확인 (git status)
git status
기능: 병합 도중의 상태를 확인합니다.
예시:
On branch mainAll conflicts fixed but you are still merging.
6. 병합 커밋 되돌리기 (git merge –abort)
git merge --abort
기능: 병합 중 문제가 발생했을 때, 병합을 중단하고 이전 상태로 되돌립니다.
예시:
git merge feature/old-featuregit merge --abort
7. 병합 충돌 이력 보기 (git log –merge)
git log --merge
기능: 병합 중 발생한 충돌 이력을 확인합니다.
8. 자동 병합 시 특정 파일 제외 (git merge –no-commit)
git merge --no-commit <브랜치명>
기능: 병합 후 자동으로 커밋하지 않습니다.
사용 예시: 특정 파일을 제외하고 병합한 후 수동으로 커밋할 때 사용합니다.
마무리
Git에서 병합은 브랜치를 사용한 개발의 중요한 단계입니다. Fast-forward 병합과 no-ff 병합의 차이를 이해하고, 충돌 상황에 대비하는 것이 중요합니다. 병합 도구와 명령어를 적절히 사용하면 복잡한 프로젝트에서도 코드 관리를 체계적으로 할 수 있습니다.
이제 Git에서 배운 병합 명령어를 사용해 브랜치를 효과적으로 관리해보세요!
Asteroid님의 댓글
위 정리 하신 내용에서 Fast-forward 의 사용은 어떤 경우에 필요한지 실제 작업 예를 들어서 설명해 주시면 감사하겠습니다.