
메뉴 읽는 법
우클릭 메뉴는 앱 전체 공통 규칙을 따릅니다 — 성격별로 구분선으로 묶이고, 위에서 아래로 안전한 것부터 위험한 것 순 으로 놓이며, 이름 끝의 … 은 다이얼로그가 먼저 열린다는 표시입니다(그래서 비교 에는 …이 없고 현재 브랜치에 머지… 에는 있습니다). 규칙 전체는 화면 둘러보기에 정리돼 있습니다. 커밋 그래프의 메뉴는 그 규칙에 따라 다섯 그룹으로 묶입니다.- 조건이 맞지 않아 그룹이 통째로 비면 그 구분선도 함께 사라집니다. 메뉴에 항목이 몇 개 보이든 구분선이 앞뒤로 남거나 겹치는 일은 없습니다.
- 브랜치·태그 배지가 붙은 커밋에서는 그 ref별 서브메뉴가 맨 마지막 그룹으로 덧붙습니다.
이 메뉴에서 빨간색이 붙는 것은 Reset 과 브랜치·태그 서브메뉴의 삭제 뿐입니다. 커밋 되돌리기(Revert) 는 되돌리는 커밋을 새로 쌓을 뿐이고, Amend·스쿼시·rebase 는 로컬 히스토리를 다시 쓰는 일상 작업이라 강조하지 않습니다.
머지
커밋(또는 브랜치 tip)을 현재 체크아웃한 브랜치로 합칩니다.1
대상 커밋 우클릭
현재 브랜치로 가져올 커밋을 우클릭하고 현재 브랜치에 머지… 를 선택합니다. 브랜치 배지가 붙은 커밋에서는 그 브랜치별 서브메뉴에도 같은 항목이 있습니다(원격 브랜치는
origin/feature 형태의 정규화된 ref로 머지).2
전략 고르기
바로 머지되지 않고 전략 선택 다이얼로그 가 먼저 열립니다. 전략(Strategy) 은 세 가지 중 하나이며, 고른 전략의 설명이 아래에 함께 표시됩니다. 기본 선택은 기본(Default) 입니다.
3
Merge 실행
Merge 를 누르면 머지가 실행되고, 결과가 토스트로 안내됩니다. 충돌 없이 끝나면 그래프가 갱신됩니다.
머지 전략
기본 (Default)
가능하면 fast-forward로 이어 붙이고, 아니면 머지 커밋을 만듭니다. Git의 기본 동작입니다.
No fast-forward
fast-forward가 가능해도 항상 머지 커밋 을 만듭니다. 합친 시점이 히스토리에 남습니다.
Squash
합쳐진 변경을 커밋도, HEAD 이동도 없이 staged 상태로만 둡니다. 직접 커밋해 마무리해야 합니다.
결과 안내
머지 결과는 상황별로 다른 토스트로 구분해 알려줍니다.- 이미 최신 — 합칠 변경이 없으면 “이미 최신 상태입니다 — 병합할 변경이 없습니다”만 뜨고 아무것도 바뀌지 않습니다. HEAD는 그대로입니다.
- 머지 완료 — fast-forward 또는 머지 커밋이 만들어지면 브랜치 이름과 함께 머지 완료 가 뜹니다. 이 경우에만 Undo가 기록됩니다(Squash와 충돌 결과는 HEAD가 움직이지 않아 대상이 아닙니다).
- Squash 완료 — “변경이 staged 상태입니다. 확인 후 커밋하세요” 안내가 뜹니다. 커밋이 아직 없으므로 워킹 카피(Working copy)에서 내용을 확인하고 직접 커밋해야 머지가 끝납니다.
- 충돌 — 경고 토스트가 뜹니다. 아래 충돌이 나면을 참고하세요.
현재 브랜치에 머지… 항목은 대상 커밋이 이미 HEAD에서 도달 가능한 경우(현재 브랜치에 이미 반영된 조상)에는 무의미(no-op)하므로 표시되지 않습니다. 실제로 합칠 것이 있을 때만 나타납니다.
리베이스
브랜치/커밋 위로 리베이스 (standalone)
현재 브랜치의 커밋들을 다른 브랜치나 커밋 위로 다시 쌓습니다.1
기준 우클릭
올려놓을 대상을 우클릭합니다.
- 브랜치 배지: 현재 브랜치를 이 브랜치 위로 rebase
- 커밋: 현재 브랜치를 이 커밋 위로 rebase
2
확인
“현재 브랜치의 커밋들을 대상 위로 다시 적용합니다. 히스토리가 변경됩니다”라는 안내와 함께 확인 다이얼로그가 뜹니다. Rebase 를 눌러 실행합니다.
리베이스는 두 경우에 실행 전에 거부되고 에러 알림만 뜹니다(standalone·interactive 모두 동일).
- 추적 중인 파일에 커밋되지 않은 변경이 있을 때 — “Working tree has uncommitted changes. Commit or stash before rebasing.” 커밋하거나 스태시한 뒤 다시 시도하세요. 추적되지 않은(untracked) 새 파일만 있으면 막지 않습니다.
- 이미 진행 중인 머지·리베이스·cherry-pick·revert가 있을 때 — “진행 중인 작업이 있습니다. 완료하거나 중단한 뒤 이 동작을 실행하세요.”
Interactive 리베이스
커밋 목록을 편집해 다시 쌓습니다.1
시작 커밋 우클릭
편집 대상 중 가장 오래된 커밋을 우클릭하고 여기서부터 interactive rebase… 를 선택합니다. 클릭한 커밋이 편집 대상에 포함됩니다.
2
계획 편집
커밋이 오래된 것부터 위→아래로 나열됩니다. 각 행에서 동작을 고릅니다.
- Pick: 그대로 사용
- 메시지 수정(reword): 커밋 메시지 변경 (인라인 입력)
- Squash: 위 커밋에 합치기 (결합 메시지 편집 가능)
- Fixup: 위 커밋에 합치되 메시지는 버림
- 삭제(drop): 커밋 제거
3
실행
Rebase 시작 을 누르면 계획대로 히스토리를 다시 씁니다.

Cherry-pick
하나 또는 여러 커밋의 변경을 현재 브랜치 위에 새 커밋으로 적용합니다.- 한 커밋
- 여러 커밋
커밋을 우클릭하고 Cherry-pick 커밋을 선택합니다.
다중 선택에 merge 커밋이 하나라도 들어 있으면 메뉴 항목이 cherry-pick 불가 — 선택에 머지 커밋 포함 (N개) 로 바뀌며 비활성화됩니다(git이
-m 없이는 거부하기 때문). 충돌이 나면 전체 시퀀스가 중간에서 멈추며, 워킹 카피에서 계속하면 남은 커밋을 이어서 적용하고 중단하면 시퀀스 전체를 취소합니다.Revert
커밋을 우클릭하고 커밋 되돌리기를 선택하면 변경을 취소하는 새 커밋을 만듭니다. 기존 커밋과 히스토리는 유지됩니다. merge 커밋을 되돌릴 때는 mainline 부모를 선택하는 다이얼로그가 열립니다. 기본값은 부모 1이며, 선택한 부모의 브랜치는 유지하고 반대편에서 들어온 변경을 되돌립니다. 부모 SHA와 제목을 확인한 뒤 실행하세요.Reset
현재 브랜치를 우클릭한 커밋 위치로 되돌립니다. 우클릭 → 브랜치를 여기로 Reset… 을 누르면 다이얼로그가 열리고, 모드 를 고릅니다. 기본 선택은 git 기본값과 같은 Mixed 입니다.충돌이 나면
머지·리베이스·cherry-pick·revert 중 충돌이 나면 작업이 중단되고 워킹 카피 패널에 배너가 나타납니다. 배너에는 진행 중인 작업 종류와 남은 충돌 개수가 표시되며, 거기서 충돌을 해결하고 계속(Continue) / 중단(Abort) 할 수 있습니다. 리베이스 중에는 건너뛰기(Skip) 버튼도 나옵니다.
남은 충돌이 하나라도 있으면 계속 버튼이 비활성 상태입니다. 충돌 파일을 모두 해결해 스테이지하면 활성화됩니다. 머지 충돌에서는 이 버튼이 머지 커밋 으로 표시됩니다.
충돌 해결 방법은 머지 충돌 해결에서 자세히 다룹니다.

