Как объединить изменения из коммита ниже определенной строки?

Я знаю, что вы можете объединить / выделить изменения из определенной фиксации, но есть ли способ объединить / выбрать изменения из фиксации, но только ниже определенной строки в коде, например: изменения слияния / выбора вишни из фиксации 25gh4q1 но только ниже 202 строки?


person carrotcake    schedule 06.07.2020    source источник
comment
Нет, вы не можете объединить часть файла с помощью git.   -  person evolutionxbox    schedule 06.07.2020
comment
@evolutionxbox Думаю, мне удалось найти ответ, хотя я и не делал в точности то, что просил, но достиг того же.   -  person carrotcake    schedule 24.06.2021


Ответы (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, которые не были поставлены или зафиксированы

person Nitsan Avni    schedule 06.07.2020
comment
Я думаю, git checkout --patch может добиться того же. - person carrotcake; 24.06.2021

git checkout --patch <commit-tag-from-any-branch>

Это войдет в режим исправления, в котором мы сможем увидеть фиксацию, разделенную на фрагменты (в git фрагменты кода называются фрагментами - см. В контексте git (и diff), что такое кусок для более подробной информации), и мы будем представлены с опциями для работы с фрагментами коммита, например: добавить их в индекс, удалить, перемещаться между фрагментами и т. д.

введите описание изображения здесь

person carrotcake    schedule 24.06.2021