저장소 채팅
찾는 것보다 묻는 편이 빠른 질문이 있습니다. 토큰 갱신은 실제로 어디서 일어나는 가? 이 커밋은 한 문장으로 무엇을 바꿨는가? 이 파일은 왜 있는가? 저장소 채팅은 열려 있는 저장소를 근거로 답하고, 근거가 된 줄을 함께 보여 줍니다.
오른쪽 열을 세부 정보와 함께 씁니다. 위쪽 탭으로 전환하므로 질문해도 그래프의 선택은 유지됩니다.

무엇을 읽는가
모든 답은 두 단계로 만들어집니다. 첫 단계는 저장소가 추적 중인 파일 목록에서 적은 수의 경로와 리터럴 검색어를 고릅니다. 두 번째 단계는 그렇게 모인 발췌만으로 답하고, 인용도 그 발췌로만 제한됩니다. 없는 파일이나 줄을 지어내면 그럴듯한 답이 아니라 검증 오류가 됩니다.
두 번째 시선. 첫 번째 패스는 이름만 보고 어떤 파일이 중요한지 추측해야 하는데, “이건 어디서 호출되지”에서 빗나가는 것이 바로 그 추측입니다. 그래서 답변은 추측하는 대신 되물을 수 있습니다. 경로를 더 지목하거나, 리터럴 검색을 더 요청하거나, 최근 기록의 커밋 해시를 지정할 수 있고, 그렇게 얻은 자료와 함께 질문이 다시 던져집니다. 최대 두 번까지만 일어나며(각 라운드는 여러분이 기다리는 모델 호출이 하나 더 늘어나는 일입니다) 마지막 라운드에서는 가진 자료로 답해야 합니다. 여러분에게 보이는 것은 조금 길어진 대기와 더 나은 답변뿐입니다.
| 포함 | 제외 |
|---|---|
| 추적 중인 파일, 작업 트리에 있는 그대로 | 추적하지 않는 파일 |
| 추적 파일의 스테이지·언스테이지 diff | 무시 규칙에 걸리는 모든 것, 추적 중이더라도 |
| 브랜치, 앞섬/뒤처짐, 변경된 경로 목록 | 비밀처럼 보이는 파일, 바이너리, 생성된 경로 |
작업 트리를 읽기 때문에 커밋하지 않은 수정에 대해서도 물을 수 있습니다. 동시에 그 수정이 질문과 함께 이 컴퓨터를 떠난다는 뜻이기도 합니다. 받는 쪽은 AI 기능 에서 설정한 제공자입니다.
한 가지 짚을 점: 작업 제안(아래 "채팅에서 작업 실행하기" 참고)을 켜면 추적하지 않는 파일의 이름은 저장소 상태에 포함됩니다 — "새 파일을 스테이징해 줘"에 필요하기 때문입니다. 그래도 그 내용은 여전히 절대 읽지 않습니다.
컨텍스트 고정
무엇을 읽을지는 모델이 정합니다. 고정은 그 결정을 뒤집는 방법입니다. 고정된 것은 먼저 읽히고 컨텍스트 예산의 더 큰 몫을 가져갑니다.
고정 방법은 네 가지이고, 모두 입력창 위의 같은 칩 줄로 모입니다.
| 이렇게 하면 | 이런 결과 |
|---|---|
| 제안 칩 클릭 | 뷰어에 열린 파일, 또는 그래프에서 선택한 커밋 |
| 파일 탭의 행을 끌어다 놓기 | 그 파일 |
| 커밋 그래프의 행을 끌어다 놓기 | 그 커밋 — 메시지와 헝크 단위 diff |
| + → 파일 선택… 또는 Finder·탐색기에서 드래그 | 저장소 밖을 포함한 디스크의 모든 파일 |
칩은 후속 질문에도 그대로 남습니다. ×로 하나를 빼고, 대화를 지우면 전부 사라집니다.
최대 8개입니다.
고정한 커밋은 메시지와 최대 12개의 diff 헝크를 제공합니다. 제외 경로를 건드리는 헝크는 그 diff에서 빠지며, 커밋 전체가 빠지지는 않습니다.
설정
설정 → AI → 저장소 채팅:
| 설정 | 하는 일 |
|---|---|
| 저장소에 대해 질문하기 | 끄면 탭, 툴바 버튼, 단축키 대상이 사라집니다. 다른 AI 기능은 그대로입니다 |
| 채팅 모델 | 채팅에만 쓰는 모델. 비우면 프로필의 모델을 씁니다 — 질문은 리뷰보다 가벼워 더 작은 모델로 충분할 때가 많습니다 |
| 커밋된 내용만 | 작업 트리 대신 마지막 커밋을 기준으로 답합니다. 커밋하지 않은 수정은 이 컴퓨터를 떠나지 않습니다 |
| 채팅에서 파일 및 Git 작업 제안 | 끄면 채팅은 다시 순수한 읽기 전용이 됩니다: 작업 카드도, 승인 드롭다운도 없습니다 |
| 파일 읽기 전용 모드 | 켜면 파일 생성, 편집, 교체, 삭제를 차단하고 Git 작업은 계속 사용할 수 있습니다. 기본으로 켜져 있습니다 |
| 제안된 작업 실행 방식 | 승인 모드입니다 — 아래 "승인 모드"를 참고하세요. 파괴적인 작업은 어느 모드든 먼저 확인합니다 |
| 채팅이 원격 작업을 제안하도록 허용 | 기본값은 꺼짐. 켜면 가져오기, 풀, 푸시, 풀 리퀘스트 열기, 스택 제출이 제안 대상에 추가됩니다 |
AI를 완전히 끄면 채팅도 함께 사라집니다. 아무도 답할 수 없는데 답을 권하는 패널은 남기지 않습니다.
채팅 모델은 패널 상단의 제공자 이름 옆에서도 바꿀 수 있습니다. 설정을 열지 않아도 되는, 같은 항목입니다.
패널 제목 옆의 마법봉 버튼은 AI 설정 마법사를 엽니다. 이 저장소를 위한 어시스턴트 설정 파일(지침, 에이전트, 훅)을 생성하는 안내형 절차입니다. AI 기능을 참고하세요.

메시지 다루기
메시지는 일반 텍스트입니다. 원하는 부분을 선택해 복사하거나 말풍선을 우클릭하세요: 복사는 선택 영역을, 메시지 복사는 메시지 전체를(답변은 Markdown 원문으로) 복사하고, 클릭한 곳이 링크라면 링크 복사가 주소를 복사합니다.
링크는 항상 기본 브라우저에서 열리며 Gitcito 안에서는 열리지 않습니다 —
답변의 Markdown 링크든 직접 쓴 https:// 주소든 마찬가지입니다.
메시지가 이미지를 언급하면 — docs/logo.png 같은 저장소 경로나 이미지
확장자로 끝나는 URL — 그 언급 위에 마우스를 올리면 작은 미리보기가 나타납니다.
저장소 경로는 작업 트리에서 읽으며, 읽을 수 있는 이미지로 이어지지 않는 언급은
아무것도 표시하지 않습니다.

채팅에서 작업 실행하기
사실 대신 변경을 요청하면 — Markdown 파일을 스테이징해 줘, 이걸 수정 커밋으로 만들어 줘, 빌드 산출물을 무시 목록에 넣어 줘 — 답변에 작업 카드가 함께 옵니다. 빈 대화에서는 소개글 아래에 몇 가지 예시 요청이 칩으로 표시되며, 하나를 클릭하면 입력창이 채워져 보내기 전에 수정할 수 있습니다. 카드에는 어시스턴트가 하려는 구체적인 단계가 작업당 한 줄씩 나열되고, 실행과 무시 버튼이 붙습니다. 카드에 있는 것은 아직 아무것도 일어나지 않았습니다. 모델은 제안만 할 수 있고, 모든 제안은 화면에 보이기 전에 작업 트리와 대조해 검증됩니다 — 존재하지 않는 파일을 지목한 작업은 표시되는 대신 거부됩니다.


저장소 채팅은 정확한 편집, 파일 생성이나 전체 교체, 삭제를 제안할 수 있고 이어서 Git 작업 — 무시 패턴, 스테이지, 스테이지 해제, 커밋, 스태시, 버리기, 브랜치, 체크아웃, 태그, 그리고 브랜치 목록과 최근 커밋을 보여 주기 때문에 merge, rebase, revert, cherry-pick — 을 제안할 수 있습니다. 펼칠 수 있는 diff는 Gitcito가 로컬에서 계산합니다. 기존 파일은 읽은 근거에서 와야 하며 안전하지 않거나 비밀·무시·생성·바이너리·오래된· 너무 큰·심볼릭 링크로 닿는 대상은 거부됩니다. reset, 기록 재작성, 브랜치 삭제, 모든 강제 작업은 전용 UI에만 남습니다.
merge나 rebase는 충돌에서 멈출 수 있습니다. 그러면 실행은 거기서 끝나고, 카드는 해당 행을 실패로 표시하며 이미 실행된 개수를 유지합니다. 충돌 배너는 같은 작업을 툴바에서 시작했을 때와 똑같이 이어받습니다.
파일 배치 전체는 첫 쓰기 전에 다시 검증되고, 한 단계라도 실패하면 롤백됩니다. 커밋 전에는 스테이징된 변경이 있는지도 확인합니다. 카드는 완료·실패·건너뜀 작업과 부분 결과를 표시합니다. 이후 작업을 허용하지 않는 별도 모델 호출이 실제 결과만 요약합니다.
.gitcito.json도 작성할 수 있습니다. 채팅에는
저장소 자체 설정 파일의 형태가 주어지므로 JIRA-1234용 티켓
링크를 추가해줘나 release 브랜치를 보호해줘는 로더가 거부할 그럴듯한 키가 아니라
실제 스키마에 맞춰 작성된 파일 작업이 됩니다. 파일 작업이 켜져 있어야 하며, 파일
읽기 전용 모드와 같은 스위치입니다.
그림이 필요한 행에는 그림이 붙습니다. 한 줄 요약은 “파일 두 개를 스테이지해”에는 충분하지만 “스택에 풀 리퀘스트 네 개를 열어”에는 턱없이 모자랍니다. 그래서 형태를 설명하는 행은 그 형태를 그립니다 — 푸시가 공개할 브랜치와 앞선 정도, merge나 rebase가 다루는 두 참조, revert나 cherry-pick이 다시 적용할 커밋과 제목, 만들어질 풀 리퀘스트의 모습, 그리고 스택은 각 단계의 베이스와 제출이 그것을 열지·대상을 바꿀지·그대로 둘지를 곁들인 사다리로.
이 컴퓨터를 벗어나는 작업
가져오기, 풀, 푸시, 풀 리퀘스트 열기, 스택 제출은 기본적으로 꺼져 있으며 채팅이 원격 작업을 제안하도록 허용 뒤에 있습니다. 작업을 공개하는 일은 의식적으로 선택할 가치가 있고, 설정이 꺼져 있으면 모델에게 그런 작업의 존재조차 알리지 않습니다. 제안했다 거절당하는 일이 없어야 하기 때문입니다 — 그것이 사람들에게 읽지 않고 설정을 켜도록 가르치는 실패 방식입니다.
켜면:
| 작업 | 하는 일 |
|---|---|
| 가져오기 / 풀 | 툴바와 같은 fetch와 pull. 풀 방식(병합, fast-forward 전용, 리베이스)은 제안의 일부입니다 |
| 푸시 | 브랜치 하나를 원격 하나에 게시합니다. 절대 강제하지 않습니다 — 강제 푸시는 제안의 어휘에 없으므로 제안 자체가 불가능합니다 |
| PR 열기 | 저장소 자신의 origin을 대상으로 풀 리퀘스트를 하나 엽니다(초안 여부 포함). 카드는 이후 링크를 보관합니다 |
| 스택 제출 | 스택 PR 제출 전체: 각 단계를 푸시하고, 단계마다 풀 리퀘스트를 열거나 대상을 바꾸고, 내비게이션 절을 쓰고, GitHub 스택을 등록합니다 |

제안된 푸시는 실행 전에 툴바의 푸시와 같은 보호 장치를 통과합니다 — 보호된 브랜치 확인, 자격 증명처럼 보이는 파일 게시 경고, 저장소 자체의 푸시 전 체크리스트. 이들은 대화 상자이므로 계획 안에서가 아니라 계획이 시작되기 전에 응답합니다.
계획 취소하기
계획은 한 묶음으로 승인되므로 한 묶음으로 취소됩니다. 무언가를 바꿀 수 있는 첫 작업 전에 Gitcito는 브랜치 위치를 기록하고 작업 트리의 스냅샷을 찍습니다. 끝난 카드는 그때 계획 취소를 제공합니다. 브랜치를 그 커밋으로 되돌리고 트리를 복원하므로 계획이 만든 것은 버려집니다. 그래서 먼저 확인을 받고 돌아갈 커밋을 알려 줍니다. 열린 풀 리퀘스트는 그대로 남습니다 — 로컬 스냅샷이 원격을 되돌릴 수는 없습니다.
승인 모드
입력창 아래의 방패 드롭다운(설정 → AI → 저장소 채팅에도 있습니다)이 카드의 실행 방식을 정합니다:
| 모드 | 실행 |
|---|---|
| 항상 묻기 | 카드의 실행을 누르기 전에는 아무것도 실행하지 않습니다 |
| 안전한 작업 자동 실행 | 되돌릴 수 있는 정리 작업 — 스테이징, 언스테이징, 무시, 브랜치, 태그 — 로만 이루어진 제안은 도착 즉시 실행하고, 그 외에는 버튼을 기다립니다 |
| 모든 작업 자동 실행 | 모든 제안을 도착 즉시 실행합니다. 파괴적인 것만 예외입니다 |
커밋하지 않은 수정을 버리는 제안은 어느 모드에서든 항상 먼저 물어보며, 확인 창에는 잃게 될 파일이 나열됩니다. 카드는 실제로 일어난 일 — 몇 개의 작업이 실행됐는지, 혹은 그것을 멈춘 오류 — 을 보고하고, 그 결과는 어시스턴트에게도 전달됩니다. 그래서 후속 질문은 계획이 실행됐는지 무시됐는지 알고 답합니다.
어시스턴트와 함께 오류 고치기
Git 작업이 실패하고 AI 채팅을 쓸 수 있으면 오류 토스트에 반짝임 버튼이 생깁니다. 누르면 실패 내용이 입력창에 붙은 채로 채팅이 열려, "왜 실패했고 어떻게 해야 하나"가 클릭 한 번이 됩니다. 초안은 수정할 수 있으며, 보내기를 누르기 전에는 아무것도 전송되지 않습니다.
거부하는 것
- 비밀처럼 보이는 파일은 절대 읽지 않습니다. 고정했더라도 마찬가지이며, 칩은 이유와 함께 건너뜀으로 표시되어 돌아옵니다. 고정은 비밀 마스킹을 우회하는 방법이 아닙니다.
- 바이너리와 512KB를 넘는 파일은 저장소 밖에서 왔을 때 같은 방식으로 건너뜁니다. 저장소 안에서는 평소 규칙이 적용됩니다.
- 스스로 쓰지 않습니다. 모델에게는 도구가 없고 텍스트뿐입니다. 변경은 제안 카드로 도착해 당신의 승인 규칙(위 "승인 모드")에 따라서만 실행되며, 파괴적인 단계는 항상 확인을 거칩니다. 채팅에서 Git 작업 제안을 끄면 제안조차 하지 않습니다.
- 대화는 메모리에만 있습니다. 저장소마다 스레드가 분리되며, Gitcito를 종료하면 사라집니다.
여는 방법
| 키 | 하는 일 |
|---|---|
| 툴바의 말풍선 버튼 | 채팅 탭을 켜고 끕니다 |
| ⌘⌥B / Ctrl+Alt+B | 오른쪽 패널 전체를 켜고 끕니다 |
| Enter | 메시지를 보냅니다 |
| Shift+Enter | 새 줄을 삽입합니다 |
패널 토글 재지정을 포함한 나머지는 키보드와 단축키에 있습니다.