Git Merge 명령 정리

알림
|
X

페이지 정보

작성자 깃미남 121.♡.50.12
작성일 2024.10.19 01:49
153 조회
2 추천

본문


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에서 배운 병합 명령어를 사용해 브랜치를 효과적으로 관리해보세요!

댓글 1

Asteroid님의 댓글

작성자 no_profile Asteroid (106.♡.245.186)
작성일 11.15 09:54
제 작업환경에서 "git merge"명령을 사용하는 경우는 작업을 위한 branch를 만들어 code의 변경을 적용 진행하고 main branch에 MR을 진행하기 전에 branch 작업 진행 동안의 변경사항을 적용하기 위해 "git merge main"을 수행하는 경우 입니다.
위 정리 하신 내용에서 Fast-forward 의 사용은 어떤 경우에 필요한지 실제 작업 예를 들어서 설명해 주시면 감사하겠습니다.
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색