Git

Панель Git

Git — это система контроля версий: она хранит историю изменений проекта, позволяя возвращаться к прежним версиям, работать над несколькими вариантами сразу и синхронизировать проект с другими компьютерами и серверами. Панель Git в панели состояния чата даёт полный доступ к этой истории, не выходя из приложения: отслеживание изменений, коммиты, ветки, stash и pull.

Панель управляет единственным Git-репозиторием вашего проекта — в него входят и код, и навыки (.claude/skills/). Все изменения — код, навыки, конфигурация — видны в одном общем списке.

Панель обновляется сама: каждые 15 секунд, а при изменениях — мгновенно, через живые подключения.


Макет панели

Каждая вкладка репозитория устроена сверху вниз из четырёх разделов:

Информация о репозитории

Верхний раздел показывает имя текущей ветки, отставание или опережение относительно удалённого репозитория (в коммитах) и путь к репозиторию.

Быстрый коммит

Коммит — это сохранение «снимка» проекта с подписью-описанием: что именно изменилось и зачем. Поле быстрого коммита заранее заполнено текущим заголовком чата. Введите описание, нажмите Enter или кнопку Commit — и одним действием индексируются все изменённые файлы (включая новые), создаётся коммит и изменения отправляются в удалённый репозиторий. Индексация — это «отметка» файлов, которые войдут в следующий коммит.

Успешный коммит отмечается праздничным конфетти со звуком. Коммит автоматически привязывается к текущему разговору в чате: от любого коммита можно вернуться к обсуждению с агентом, которое его создало.

Панель инструментов

Панель инструментов над списком файлов делится на три группы:

  • Слева — разделённая кнопка Pull (основное действие + выпадающий список для операций со stash), значок статуса (галочка, когда всё чисто; предупреждение, когда есть изменения), кнопка диалога файлов для просмотра полного дерева и кнопка коммитов со счётчиком: она показывает все коммиты текущей сессии чата — удобно проверить, что агент сделал за время разговора
  • В центре — выпадающий список веток с именем текущей. Нажмите, чтобы управлять ветками: переключение, создание, слияние, просмотр, удаление
  • Справа — кнопка Undo All: отменяет все незакоммиченные изменения и удаляет новые (неотслеживаемые) файлы

Список файлов

Каждый изменённый файл показывается с четырьмя деталями:

  • Значок статуса — цвет показывает тип изменения: синий — изменён, зелёный — добавлен, красный — удалён, голубой — переименован, зелёный — новый (неотслеживаемый). Нажмите на значок, чтобы открыть редактор файлов с текущим состоянием файла
  • Путь к файлу — кликабелен, открывает диалог diff (сравнение версий)
  • Кнопка действия — значок Undo для отката незакоммиченного файла или кнопка Unstage, возвращающая отмеченный (индексированный) файл в незакоммиченные

Список ограничен 1000 файлами; кнопка «показать больше» загружает остальные.


Операции Pull и Stash

Кнопка Pull — разделённая: нажмите основную область, чтобы выполнить pull с rebase, или стрелку выпадающего списка для дополнительных операций. Pull — это «забрать изменения с удалённого сервера», push — «отправить свои». Rebase — аккуратный способ объединить истории: ваши локальные коммиты накладываются поверх полученных изменений, и история остаётся линейной и понятной.

  • Pull — получает удалённые изменения и перебазирует поверх них ваши локальные коммиты. Действие по умолчанию
  • Stash — «отложить в сторону» текущие незакоммиченные изменения: они сохраняются в именованный stash (можно дать ему описание), а рабочая папка возвращается к последнему коммиту. Удобно, когда нужно на время переключиться на другую задачу, не теряя начатое
  • Unstash — достаёт ранее отложенный stash и применяет его изменения обратно. Открывается список всех stash в формате stash@{N}: message — выберите нужный
  • Stash-Pull-Rebase — комбинированный процесс: отложить свои изменения, получить изменения с сервера с rebase, затем применить отложенное вручную, когда будете готовы
  • Stash-Pull-Rebase-Unstash — полностью автоматизированный процесс: отложить, получить с rebase и сразу применить свои изменения обратно. Используйте, когда нужно синхронизироваться с сервером без прерывания работы

Управление ветками

Ветка — это отдельная линия разработки: как параллельный вариант проекта, который не мешает основной версии. Удобно, например, готовить новую версию в отдельной ветке, не трогая работающий вариант. Выпадающий список веток в центре панели инструментов открывает меню с пятью операциями:

  • Переключить ветку — открывает диалог со списком всех веток (можно искать по имени); текущая ветка помечена и отключена для переключения
  • Создать ветку — диалог ввода имени новой ветки. Имя может содержать только буквы, цифры, дефисы, подчёркивания и слеши — без пробелов
  • Объединить ветку — выбор, какую ветку влить в текущую (слияние двух линий разработки)
  • Осмотреть ветку — открывает страницу коммитов, отфильтрованную по текущей ветке
  • Удалить ветку — диалог выбора ветки; удаление — необратимое действие, поэтому требует подтверждения

Операции с файлами

Помимо быстрого коммита в один шаг, файлами можно управлять по отдельности:

  • Индексировать файл — отметить незакоммиченный файл для включения в следующий коммит. У каждого элемента списка есть своя кнопка
  • Unstage файл — вернуть отмеченный файл в незакоммиченные: кнопка Unstage на отмеченном файле
  • Undo файл — вернуть отдельный файл к состоянию последнего коммита: значок undo на незакоммиченных файлах
  • Undo All — вернуть все незакоммиченные изменения по всем файлам и удалить новые (неотслеживаемые) файлы: кнопка на панели инструментов справа

Статусы файлов обновляются в реальном времени. Индексация и отмена сразу отражаются на экране — ждать следующего цикла обновления не нужно.


Просмотр diff

Diff — это сравнение «было/стало»: полная разница между текущей версией файла и последней закоммиченной, с подсветкой синтаксиса. Нажмите на любой путь к файлу в списке, чтобы открыть диалог diff.

Диалог diff предлагает:

  • Путь к файлу в заголовке диалога
  • Переключатель режима просмотра — side-by-side (старая и новая версии рядом) или line-by-line (единый вид с чередованием добавлений и удалений)
  • Кнопка Edit — открывает файл в редакторе файлов, чтобы вносить изменения напрямую
  • Адаптация под тему — автоматически подстраивается под тёмную или светлую тему

Для бинарных файлов (включая базы данных SQLite) показывается «Binary file — diff not available» — сравнение таких файлов невозможно.


Страница коммитов

Кнопка коммитов (со счётчиком) на панели инструментов Git открывает страницу коммитов — полную историю изменений выбранного репозитория.

Фильтр и навигация

Вверху страницы — панель фильтрации с полем поиска по сообщениям коммитов. При фильтрации по ветке (через действие «Осмотреть ветку») появляется метка с именем активной ветки. Кнопка обновления подтягивает и привязывает новые коммиты.

Список коммитов

Коммиты показываются постранично (по 10). У каждой записи:

  • Заголовок сообщения коммита
  • Относительное время, имя ветки и короткий хеш коммита (уникальный идентификатор)
  • Значок чата, если коммит связан с разговором

Нажмите на любой коммит — откроются полные детали, включая diff всех файлов, изменённых в этом коммите. Страница поддерживает постраничную навигацию и показывает общее число коммитов.

Связывание чата и коммита

Когда агент создаёт коммит через быстрый коммит в репозитории проекта, он автоматически привязывается к текущему разговору в чате. История Git соединяется с историей обсуждений: от любого коммита можно вернуться к разговору, который его создал. Так видно, как принимались решения и какой контекст привёл к каждому изменению.