Вы можете использовать git add --patch
(или -p
для краткости), и git начнет разбивать ваш файл на то, что он считает разумными «фрагментами» (частями файла). Затем он предложит вам следующий вопрос:
Stage this hunk [y,n,q,a,d,/,j,J,g,s,e,?]?
Вот описание каждой опции:
git add -p
.
После этого вы можете использовать:
git diff --staged
, чтобы проверить, что вы внесли правильные изменения git reset -p
для деактивации ошибочно добавленных фрагментов git commit -v
для просмотра вашего коммита при редактировании сообщения о коммите. Обратите внимание, что это сильно отличается от формата git- patch
команда, предназначенная для синтаксического анализа данных фиксации в файлах .patch
.
Ссылка на будущее: Git Tools - Interactive Staging
git gui предоставляет эту функциональность в режиме просмотра различий. Просто щелкните правой кнопкой мыши интересующие вас строки, и вы увидите пункт меню «Подготовить эту строку для фиксации».
Вы можете использовать git add --interactive
или git add -p < file >
, а затем git commit
( не git commit -a
); см. Интерактивный режим на странице git-add или просто следуйте инструкциям.
В современном Git также есть git commit --interactive
(и git commit --patch
, ярлык для опции patch в интерактивной фиксации).
Если вы предпочитаете делать это из графического интерфейса, вы можете использовать git-gui . Вы можете просто отметить куски, которые хотите включить в коммит. Лично мне это проще, чем использовать git add -i
. Другие графические интерфейсы git, такие как QGit или GitX, также могут иметь эту функцию.
Если вы используете emacs, взгляните на Magit , который предоставляет интерфейс git для emacs. Он достаточно хорошо поддерживает промежуточные блоки (части файлов).