Я знаю, что вы можете объединить / выделить изменения из определенной фиксации, но есть ли способ объединить / выбрать изменения из фиксации, но только ниже определенной строки в коде, например: изменения слияния / выбора вишни из фиксации 25gh4q1 но только ниже 202 строки?
Как объединить изменения из коммита ниже определенной строки?
Ответы (2)
это не однострочник, но вы можете сделать это:
git cherry-pick 25gh4q1
git reset --mixed HEAD~
git add -p
<interactively stage only relevant parts of the file>
git commit
git reset --hard
объяснение:
git cherry-pick 25gh4q1
- вишня выбирает весь коммит, включая нежелательные вещи
git reset --mixed HEAD~
- сохраняет файлы, измененные как при фиксации 25gh4q1
, но теперь они будут отображаться как «Изменения, не поставленные для фиксации».
git add -p
- позволяет в интерактивном режиме обрабатывать только некоторые изменения, а не все, включая части файлов; -p
означает patch
.
git commit
- зафиксировать поэтапные изменения
git reset --hard
- удалить ненужные части коммита 25gh4q1
, которые не были поставлены или зафиксированы
git checkout --patch
может добиться того же.
- person carrotcake; 24.06.2021
git checkout --patch <commit-tag-from-any-branch>
Это войдет в режим исправления, в котором мы сможем увидеть фиксацию, разделенную на фрагменты (в git фрагменты кода называются фрагментами - см. В контексте git (и diff), что такое кусок для более подробной информации), и мы будем представлены с опциями для работы с фрагментами коммита, например: добавить их в индекс, удалить, перемещаться между фрагментами и т. д.