기능

특징

옵션

--no-ff     # 병합 커밋을 반드시 생성 (브랜치간 히스토리를 명확히 유지할 때 사용)
--ff-only   # 병합 커밋을 생성하지 않고 Fast-Forward 병합만 허용 (불가능할 경우 중단 후 오류 출력)
--squash    # 변경사항(커밋)들을 가져와서 커밋을 모두 풀어버리고 스테이징 영역에 삽입 (이후 commit을 통해 하나의 커밋으로 생성 가능)
--log       # 병합 시 커밋 메시지에 병합된 브랜치의 커밋 메시지 추가(Gitlab의 Merge Request의 기본 동작과 동일)
--no-commit # (FF일 때는 해당되지 않음) 병합할 커밋들을 일단 가져온 뒤, 병합 중단 상태로 머무른다. git status, diff 등으로 상태를 확인하고 commit하거나 merge --abort 할 수 있다.
--edit      # (기본값) 병합 시 커밋 메시지를 수정할 수 있도록 편집기 열기
--abort     # 병합 중 충돌 발생 시 중단하고 이전 상태로 복귀

예제

git merge dev          # 로컬 dev 브랜치로부터 커밋 병합 
git merge origin/dev   # 원격 dev 브랜치로부터 커밋 병합
git merge origin/dev~1 # 원격 dev 브랜치의 마지막 이전 커밋까지 병합
git merge {커밋해시}    # 지정한 커밋 해시까지의 커밋 병합

git pull과의 차별점