Подтвердить что ты не робот

Выборочно слияние * частей * файла с git?

Я хочу выборочно объединить части файла с git.

У меня есть две ветки - назовите их мастером и измените - это одно целое; если я сменю master на измененный, он просто ускорит перемотку вперед.

Однако я просто хочу включить несколько частей - в один файл - из измененного на master.

Есть ли чистый способ сделать это? git запрос перед внесением каждого изменения? Или я застреваю это вручную? (Не конец света, но я бы предпочел не делать этого, и - да - этого можно было бы избежать, если бы планировалось с моей стороны - такова жизнь.)

4b9b3361

Ответ 1

Попробуйте следующее:

git merge --no-ff --no-commit changed    # Merge in 'changed' but don't commit
git reset <path/to/your/file>            # Reset the stage state but not file
git add -i <path/to/your/file>           # Start adding in interactive mode

(Git will prompt you for each hunk; you can split hunks up if necessary.)

git commit                               # Finally commit the merge with only
                                         # the bits you chose to stage.

Обратите внимание, что при этом make Git считает, что файл полностью объединен, поэтому, если кто-то должен был снова объединиться в той же ветке, другие изменения из этого фиксатора все равно не будут объединены. может быть или не быть тем, что вы хотите.

Если вам нужна помощь со значениями различных опций в интерактивном режиме git add, см. вывод git help add в разделе "ИНТЕРАКТИВНЫЙ РЕЖИМ".