Как закоммитить один файл и не затронуть уже staged изменения: проверяем git commit --only. Пошаговый разбор: сначала сохранить вывод git diff cached name status и git status, затем проверить git commit --dry-run --only -- path и выполнить commit только для указанного tracked пути; после него сверить git show и сохранность остальных staged изменений.
22. Зафиксируйте границы симптома
Исходная боль сформулирована узко: в индексе уже лежит чужой или незавершённый набор, а пользователю нужно записать отдельное изменение без stash reset или временного удаления файлов. Нужный ответ также ограничен конкретным намерением: как создать commit только для выбранного tracked файла, не включив уже staged изменения в других файлах и не потеряв staged и unstaged работу. Сначала запишите наблюдаемый симптом своими словами, время, версию затронутого компонента и один ожидаемый результат. Не переносите в заметки имена, адреса, токены, полные журналы или приватные ссылки. Свежая публичная карточка от 2026-08-27 подтверждает существование вопроса, но не доказывает его причину, массовость или популярность.
22. Проведите один обратимый контроль
Безопасная последовательность для этого случая: сначала сохранить вывод git diff cached name status и git status, затем проверить git commit --dry-run --only -- path и выполнить commit только для указанного tracked пути; после него сверить git show и сохранность остальных staged изменений. Меняйте один фактор за раз и перед действием сохраните исходное состояние, чтобы сравнение не смешивало несколько причин. Контроль должен повторять тот же вход, тот же маршрут и тот же ожидаемый результат. Успех фиксируется только когда целевой симптом меняется предсказуемо после одного обратимого шага. Практическая матрица именно для этой темы: снимок трёх состояний HEAD × index × worktree и контроль до после показывает что pathspec commit удерживает чужой индекс, а не маскирует его.
22. Сверьте вывод с первичными источниками
Доказательная граница собрана из первичных материалов. Официальный git-commit документирует --only: commit берёт обновлённое содержимое названных tracked paths и игнорирует уже staged содержимое других путей, которое остаётся удержанным для следующего commit. Официальный git-status разделяет различия между index и HEAD, worktree и index, а также untracked files; эта трёхслойная проверка нужна до и после pathspec commit, чтобы не принять скрытое изменение за потерю. Эти документы подтверждают только описанные в них механизмы и условия: они не позволяют автоматически назначить виновный компонент по одному совпадающему симптому. Если наблюдение расходится с документацией, вернитесь к исходному состоянию, проверьте точную версию продукта и не расширяйте изменение на другие устройства, учётные записи или окружения.
22. Остановитесь и соберите безопасный пакет
Стоп-линия наступает, если контроль не воспроизводится, появляется риск потери данных или доступа, требуется необратимый сброс либо результат зависит сразу от нескольких переменных. Для поддержки подготовьте минимальный обезличенный пакет: идентификатор сценария t19-git-commit-only-dirty-index, версии компонентов, время проверки, ожидаемый и фактический результат, один безопасный фрагмент ошибки и перечень уже возвращённых настроек. Не прикладывайте секреты, персональные данные или полные конфигурации. Уникальная ценность такого пакета состоит в следующем: В публичном корпусе нет ответа о git commit --only при уже заполненном индексе с обязательной проверкой трёх состояний; опубликованный gitlink-материал решает устройство submodule, а не выбор содержимого commit.
Материал подготовлен самостоятельно с автоматизацией и редакционно проверен 27 августа 2026 года по обезличенному публичному сигналу и прямым первичным источникам; персональные данные и частные обстоятельства не использовались.
Источники и проверка
- git-scm.com: первичный материал 1 проверено 2026-08-27
- git-scm.com: первичный материал 2 проверено 2026-08-27
Информация актуальна на дату публикации. Правила сервисов, приложений и сетей могут меняться.