Git интерактивная измененная часть файла или по hunks

Существует git add -p для изменения стадии и git checkout -p для удаления изменений в интерактивном режиме. Как я могу варьировать изменения по индексу от hunks?

(Я думал, что нестадия-p мерзавца или ГЛАВНЫЙ-p сброса мерзавца мог бы работать.)

52
задан LHM 14 October 2019 в 20:43
поделиться

1 ответ

Я нашел этот ответ очень полезный при изучении подготовки, таким образом, я думал, что изменю его для неподготовки, поскольку я не нашел полный ответ на stackoverflow к этому, "Как мерзавцу не подготавливают одну строку или часть файла?" вопрос.

, Поскольку @manojlds говорит, можно использовать git reset --patch <filename> (или -p, если коротко), и мерзавец начнет ломать файл в то, что он думает, разумная "скряга" (части файла).

Мерзавец затем предложит Вам с вариантом этого вопроса:

Unstage this hunk [y,n,q,a,d,g,/,j,J,k,K,s,e,?]?

Вот описание каждой опции:

  • y не подготавливают этот ломоть от следующей фиксации
  • n , подготавливают этот ломоть для следующей фиксации
  • q выход; не не подготавливайте этот ломоть, или какая-либо остающаяся скряга
  • не подготавливает этот ломоть, и вся более поздняя скряга в файле
  • d не не подготавливают этот ломоть, или какая-либо более поздняя скряга в файле
  • g выбирают ломоть для движения в [1 123]
  • / , ищут ломоть, соответствующий данному regex
  • j , оставляют этот ломоть нерешенным, видят затем, что нерешенный ломоть
  • J оставляет этот ломоть нерешенным, видит, что следующий ломоть
  • k оставляет этот ломоть нерешенным, видит, что предыдущий нерешенный ломоть
  • K оставляет этот ломоть нерешенным, видит, что предыдущий ломоть
  • s разделил текущий ломоть на меньшую скрягу
  • e , вручную редактируют текущий ломоть
  • ? печатают справку ломтя
<час>

ПРИМЕЧАНИЕ О e РУЧНОЕ РЕДАКТИРОВАНИЕ: Быть дополнителен осторожный при использовании редактирования (e) режим выше, поскольку это не интуитивно. Я буду включать и затем пересматривать встроенную документацию мерзавца:

# To remove '+' lines, make them ' ' lines (context).
# To remove '-' lines, delete them.                
# Lines starting with # will be removed. 

Пересмотренный для ясности:

  • Все строки, запускающиеся с +, являются строками, в настоящее время подготавливаемыми, чтобы быть добавленными, который теперь будет не подготовлен. Чтобы оставаться + строки от того, чтобы быть неподготовленным (т.е. оставить их как подготовленные изменения), замените начальную букву + пробелом.
  • Все строки, запускающиеся с -, являются строками, в настоящее время подготавливаемыми, чтобы быть удаленными, который теперь будет не подготовлен. Чтобы оставаться - строки от того, чтобы быть неподготовленным (т.е. оставить их как подготовленные изменения), удалите каждую строку полностью.
  • Все строки с #, являются строками комментария и не влияют на содержание фиксации.
  • , возможно, также имеют в виду @Daniel-Alder's комментарий , чтобы не случайно не подготавливать целый ломоть.
<час>

Впоследствии, можно использовать:

  • git diff --staged, чтобы проверить, что Вы неподготовленный/подготовленный корректные изменения
  • git add -p для подготовки по ошибке удаленной скряги
  • git commit -v для просмотра фиксации, в то время как Вы редактируете сообщение о фиксации.

Ссылка для будущего: Инструменты Мерзавца - Интерактивная Подготовка

0
ответ дан 7 November 2019 в 09:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: