브랜치, 원격, 사이드바
순서를 바꿀 수 있고 검색이 되는 사이드바 하나에 브랜치, 원격, 태그, 스태시, 워크트리, 서브모듈이 전부 들어 있어요. 모든 섹션은 숨기거나 순서를 바꿀 수 있고 (설정 → 레이아웃), 필터 상자는 그 전부에 적용돼요. 어떤 섹션과 폴더를 펼쳐 두거나 접어 두었는지는 저장소별로 기억되고, 재시작 후에도 유지돼요.
사이드바는 긴 목록이 아니라 페인 더미예요. 열린 섹션은 접힌 섹션들이 남긴 높이를 가져가고, 접힌 쪽은 아래 헤더 줄로 남아요. 여러 개를 열면 그 높이를 똑같이 나누고, 각자 따로 스크롤해요. 태그가 수백 개인 섹션은 자기 페인 안에서 스크롤되고 다른 헤더는 제자리에 남아서, 클릭하고 싶은 게 화면 밖으로 밀려나지 않아요. 들어갈 수 있는 것보다 많이 열면 모든 페인이 헤더까지 함께 줄어들고 — 사이드바 자체는 스크롤되지 않아요.
아직 정리하지 않은 저장소에서는 로컬만 열린 채로 시작하고, 나머지 섹션은 헤더로 시작해요. 참조가 300개를 넘는 섹션은 그래도 접힌 상태로 시작합니다. 한 번도 지우지 않은 원격 브랜치가 수천 개 쌓인 저장소에서는, 그러지 않으면 요청하지도 않은 것들이 전부 화면에 깔립니다. 한 번 펼치면 그 선택은 다른 것들과 똑같이 기억됩니다.

브랜치
로컬이든 원격이든 만들고, 체크아웃하고, 이름을 바꾸고, 지울 수 있어요. 브랜치 행에는 이런 것이 표시돼요.
이름에 /가 들어간 브랜치는 자동으로 접을 수 있는 폴더로 묶여요.
자식이 하나여도 폴더예요. release/1.2.3은 1.2.3을 담은 release라서,
나중에 release/1.2.4를 추가해도 나무가 다시 그려지지 않아요. 자식이 하나인
폴더가 이어지면 헤더 하나로 접혀요 (dependabot/npm_and_yarn). 폴더 머리글은
폴더 표시, ref 자체는 브랜치·원격·태그 표시예요.
폴더 머리글을 우클릭하면 그룹 전체에 대해 동작해요. *feature 아래 모든 브랜치 삭제 (4개)*는 정확히 어떤 브랜치가 지워지는지
나열하는 한 번의 확인 뒤에 안의 것을 전부 삭제해요 — 지금 있는 브랜치는 제외돼요. 같은 메뉴가 원격 브랜치 폴더에도 있고, 그쪽은
원격에서 삭제해요.
도구 모음의 브랜치 드롭다운은 로컬과 원격 브랜치를 나열해요. 드롭다운의 브랜치를 마우스 오른쪽 버튼으로 클릭하면 로컬 브랜치 이름 바꾸기, 이름 복사, 새 워크트리에서 체크아웃, 활성 브랜치로 병합, 삭제를 할 수 있어요. 원격 브랜치에는 이름 바꾸기가 없고, 확인 후 원격에서 삭제돼요. 선택한 참조가 이미 활성 브랜치에 포함되어 있으면 Gitcito는 병합을 표시하지 않고, 해당 브랜치가 이미 체크아웃되어 있으면 워크트리 만들기를 비활성화해요.


행은 파일처럼 여러 개를 선택할 수 있어요. ⌘/Ctrl+클릭은 행 하나를 토글하고, Shift+클릭은 범위를 선택하고, Shift+↑/↓는 마지막으로 클릭한 행에서 선택을 넓혀요. 선택 위에서 우클릭하면 일괄 메뉴 — 브랜치 4개 삭제 — 가 열리고, 전체 목록과 함께 확인해요. 같은 제스처가 원격 브랜치, 태그, 스태시에서도 동작해요.

브랜치 이름 바꾸기
사흘 전에 fix라고 지은 브랜치는 오늘은 아무도 위치를 짚지 못하는 브랜치입니다.
문제를 발견한 곳에서 바로 이름을 바꾸세요.
| 위치 | 방법 |
|---|---|
| 사이드바 | 브랜치 우클릭 → 이름 변경… |
| 툴바 브랜치 드롭다운 | 브랜치 우클릭 → 이름 변경… |
| 커밋 그래프 | 커밋의 브랜치 배지 우클릭 → 이름 변경… |
| 명령 팔레트 | ⌘/Ctrl+K → 브랜치 이름 변경 (체크아웃된 브랜치 대상) |
로컬 이름 변경은 git branch -m입니다. 즉시 적용되고 ⌘Z로 되돌릴 수 있습니다
— 실행 취소 항목이 이전 이름으로 되돌립니다. 지금 있는 브랜치의 이름을 바꿔도
그 브랜치에 그대로 남습니다.
브랜치가 원격을 추적 중이면 메뉴에 이름 변경 (원격 포함)… 도 나타납니다. 로컬에서 이름을 바꾸고, 새 이름을 푸시하고, 원격의 옛 이름을 지웁니다. 이것은 되돌릴 수 없습니다 — 옛 원격 브랜치는 사라지고, 그것을 체크아웃해 두었던 사람은 직접 다시 맞춰야 합니다. 그래프 배지에서는 브랜치가 정확히 하나의 원격을 추적할 때만 제공됩니다. 원격이 여럿이면 업스트림이 분명해지도록 사이드바에서 브랜치를 고르세요.
한계: Gitcito는 옛 이름을 참조하던 것을 다시 쓰지 않습니다 — 열려 있는 풀 리퀘스트는 열릴 때의 브랜치를 계속 가리키고, 브랜치 패턴에 맞추던 CI 규칙은 더 이상 맞지 않습니다. 다른 워크트리에서 체크아웃된 브랜치의 이름 변경은 실패하며, git이 그렇게 알려 줍니다.
체크아웃하지 않은 브랜치를 풀·푸시하기
로컬 브랜치를 우클릭하면 체크아웃된 브랜치가 아니라 그 브랜치에 작용하는 풀과 푸시 항목이 나옵니다. 브랜치 세 개를 따라잡으려고 체크아웃을 오갈 필요가 없습니다. 페치·풀·푸시 참고.
고정 브랜치
자꾸 돌아오게 되는 브랜치에는 별을 달아 두세요. 행 위에 마우스를 올리고 ★를 누르거나, 우클릭 → 브랜치 고정을 고르면 돼요. 고정한 브랜치는 로컬 섹션 맨 위의 고정됨 그룹에 나타나고, 저장소별로 기억되며, 아래쪽 원래 자리에도 그대로 남아 있어요.
원격 브랜치 체크아웃
원격 브랜치를 더블클릭하면 그 브랜치를 추적하는 로컬 브랜치가 만들어져요. 같은 이름의 로컬 브랜치가 이미 있고 갈라져 있다면, Gitcito가 어떻게 맞출지 물어봐요 — 리베이스, 머지, 리셋 중에서 고르면 되고, 먼저 브랜치를 백업해 줄지도 물어봐요.

로컬 브랜치가 뒤처져 있을 때
체크아웃과 함께 원격 끝까지 패스트포워드됩니다. 작업 트리가 지저분하면 이름이 붙은 스태시에 넣었다가 나중에 되돌리므로, 로컬 편집 때문에 업데이트가 중단되지 않습니다.
로컬 브랜치가 앞서 있을 때
로컬 브랜치가 앞서 있고 원격에 새 내용이 없다면, 체크아웃은 원격 브랜치를 요청한 동작에 아직 푸시하지 않은 내 작업으로 답하는 셈입니다. 그래서 어느 쪽을 뜻했는지 말할 때까지 아무것도 체크아웃하지 않습니다.
| 선택 | 결과 |
|---|---|
| 로컬 체크아웃 | 로컬 브랜치로 전환하고 커밋은 그대로 둡니다. 다른 클라이언트가 조용히 하는 동작입니다. |
| 리셋(soft) | 브랜치를 원격 끝으로 되돌리고, 커밋의 변경 사항은 스테이지에 남겨 다시 커밋할 수 있게 합니다. |
| 리셋(mixed) | 같은 이동이지만 변경 사항은 작업 트리에 스테이지되지 않은 채 남습니다. |
| 리셋(hard) | 커밋과 그 변경 사항을 모두 버립니다. |

먼저 백업 브랜치 만들기를 켜 두면 무엇이 움직이기 전에 로컬 끝이
backup/<브랜치>-<타임스탬프>로 저장되어, hard 리셋도 체크아웃 한 번이면 되돌릴 수
있습니다. 리셋은 실행 취소 스택(⌘Z)에도 들어가지만 저장소를 닫기 전까지만 유효하며,
백업 브랜치는 그보다 오래 남습니다.
한계: 이 대화상자는 방금 가져온 추적 ref와만 비교하므로, 페치를 거부한 원격 (오프라인, 잘못된 자격 증명)은 마지막으로 알려진 끝과 비교됩니다. 커밋이 좋은지는 말해 주지 않고, 여기에는 있고 저기에는 없다는 사실만 알려 줍니다.
원격
사이드바의 원격 칸에서 원격을 추가하고, 고치고, 가져오고, 지워요. 원격이 하나도 없는 저장소에서 페치, 풀, 푸시를 하면 아무 일도 안 하는 대신 같은 원격 추가 대화상자가 열려요. URL을 붙이거나 호스트에 저장소를 만드세요. 페치, 풀, 푸시를 보세요.