Там git add -p
, чтобы сменить изменения и git checkout -p
, чтобы отменить изменения в интерактивном режиме. Как я могу исключить изменения из индекса с помощью hunks?
(Я думал, что git unstage -p
или git reset HEAD -p
могут работать.)
Там git add -p
, чтобы сменить изменения и git checkout -p
, чтобы отменить изменения в интерактивном режиме. Как я могу исключить изменения из индекса с помощью hunks?
(Я думал, что git unstage -p
или git reset HEAD -p
могут работать.)
Если я не ошибаюсь, то что вы хотите - это разогнать куски в интерактивном режиме? Я думал, что git reset -p
делает именно это. Его быстрое сообщение даже точно похоже на Unstage this hunk?
Также из руководства:
Это означает, что git reset -p противоположно git add -p, т.е. вы может использовать его выборочно reset hunks. См. "Интерактивный режим" раздел git -add (1), чтобы узнать, как управлять режимом -patch.
Я нашел этот ответ очень полезным при изучении поэтапной подготовки, поэтому я решил изменить его на unstaging, так как я не нашел подробного ответа о стекопереходе к этому "Как выполнить нестандартную строку или часть файл?" вопрос.
Как говорит @manojlds, вы можете использовать git reset --patch <filename>
(или -p
для краткости), и git начнет разбивать ваш файл на то, что он считает разумными "кусочками" (частями файла).
Git предложит вам вариант этого вопроса:
Unstage this hunk [y,n,q,a,d,g,/,j,J,k,K,s,e,?]?
Вот описание каждой опции:
ПРИМЕЧАНИЕ ПО РЕДАКТИРОВАНИЮ РУКОВОДСТВА e: Будьте особенно осторожны при использовании режима редактирования (e), описанного выше, поскольку он не интуитивно понятен. Я включу, а затем пересмотрю встроенную документацию по git:
# To remove '+' lines, make them ' ' lines (context).
# To remove '-' lines, delete them.
# Lines starting with # will be removed.
Пересмотрен для ясности:
+
, являются строками, которые в настоящее время готовятся к добавлению, и теперь они не будут обработаны. Чтобы сохранить строки +
без изменений (т.е. оставить их как поэтапные изменения), замените исходный +
пробелом.-
, являются строками, которые в данный момент подготовлены к удалению, и теперь они не будут обработаны. Чтобы сохранить строки -
без изменений (то есть оставить их как поэтапные изменения), полностью удалите каждую строку.После этого вы можете использовать:
git diff --staged
чтобы убедиться, что вы пометили/поставили правильные измененияgit add -p
для постановки ошибочно удаленных блоковgit commit -v
для просмотра вашего коммита во время редактирования сообщения о коммите.Ссылка на будущее: Git Tools - Интерактивная постановка