Ревью и коммит изменений
Changes
Section titled “Changes”Changes показывает проиндексированные, непроиндексированные, неотслеживаемые и конфликтующие файлы — списком или деревом, с фильтром и видами All / Unstaged / Staged. Если выбрать файл, откроется его diff: пронумерованные строки с горизонтальной прокруткой и правильными версиями «до» и «после» для индекса, рабочей копии и коммитов, включая переименования.
Индексация
Section titled “Индексация”- Индексируйте целый файл, фрагмент (hunk) или выбранные строки изменённого текстового файла — или убирайте их из индекса.
- Когда вы индексируете, убираете из индекса или отменяете изменения (discard) в просматриваемом файле, ffgit переходит к следующему файлу.
Индексация и её отмена проходят через очередь изменений (change queue): файлы перемещаются сразу и остаются полупрозрачными, пока Git их не обработает, так что можно индексировать файл за файлом без ожидания. Записи выполняются по одной, по порядку. Если index.lock занят, ffgit несколько секунд повторяет попытку — и никогда не удаляет этот файл, — а при ошибке файлы возвращаются на место. Меню Change queue на панели инструментов списка файлов показывает каждую запись с действиями Cancel, Retry и Dismiss.
Коммит
Section titled “Коммит”В форме коммита есть заголовок (summary), необязательное описание и число проиндексированных файлов. Amend нужно выбрать явно. Если коммит не удался, черновик сохраняется — как и всё, что вы наберёте после. Хуки и подпись выполняются ровно так, как настроено в Git.
Перед коммитом ffgit помечает проиндексированные файлы, на которые стоит взглянуть:
- файл больше лимита размера (по умолчанию 50 МиБ, задаётся в Cleanup › Suggestions);
- результаты сборки — по правилам Build output in Git;
- вероятный секрет, найденный по имени (
.env,*.pem,*.p8,*.p12,id_ed25519,*private-key*…), — содержимое ffgit не читает; - файл, указанный в
.ffignore.
Commit и Amend один раз перечисляют такие файлы с причиной и предлагают Commit anyway (всё равно закоммитить) или Unstage them (убрать их из индекса). Только это нажатие убирает файлы из индекса — и только эти файлы.
History
Section titled “History”History строит топологический граф коммитов по веткам, тегам и удалённым репозиториям — с фильтрацией веток, рёбрами слияний и постраничной загрузкой. Метки отличают локальные ветки, remote-tracking-ветки, теги, ветки, извлечённые в другом worktree, и detached HEAD других worktree. Искать в истории можно по сообщению, автору, хешу, пути или коду.
Ветки и worktree
Section titled “Ветки и worktree”- Переключайте и создавайте ветки; перед переключением ffgit запрашивает подтверждение.
- Находите, создавайте и открывайте связанные worktree. Новый worktree извлекает свои сабмодули (All — по умолчанию, Top level или None).
- Clone, fetch, pull и push. Профиль GitHub или GitLab может содержать SSH-ключ или сохранённый токен, который используется только для этого процесса Git.
Видимые репозитории обновляются после операций Git, по событиям файловой системы и по опросу статуса раз в две секунды; окна в фоне приостанавливают наблюдение за файлами.