Там 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 - Интерактивная постановка