Добавление git commit в историю коммитов - PullRequest
0 голосов
/ 29 июня 2018

У меня есть коммит (давайте назовем его ComV2) в ветке Dev, который был сделан месяц назад и на 10 коммитов за HEAD. Однако мне нужно сделать сборку на основе коммита ComV2, но с несколькими изменениями в одном из файлов этого коммита.

Что я пробовал до сих пор:

  1. Checkedout ComV2 - это привело к получению отсоединенного HEAD (это нормально)
  2. Внесены изменения в файл коммита ComV2
  3. Спрятал эти изменения.
  4. Запущен git rebase с типом «edit» для коммита ComV1 (ComV1 на один коммит раньше, чем ComV2)
  5. Выскочили изменения из тайника
  6. Сделал коммит для сованных изменений тайника. Позволяет вызвать этот коммит ComV2.1
  7. Сделал ли git rebase - продолжение
  8. Проверил ComV2.1 в новой ветке. Давайте назовем это TempBranch
  9. Переключен обратно на ветку Dev - Это привело к повторному подключению HEAD к последней фиксации
  10. Слияние TempBranch с Dev

Проблема:

Это объединение привело к тому, что изменения из последних коммитов в ветке Dev были вставлены в остальные файлы коммитов ComV2, которые мне не нужны, и ComV2.1 не входит в ComV2.1 в истории. Это последний коммит согласно git log. Я также хочу, чтобы этот измененный файл был добавлен в коммиты после ComV2.1

Вопрос:

  1. Как я могу заставить ComV2.1 отображаться сразу после ComV2 и иметь тот же код, что и ComV2, за исключением файла, который я изменяю в ComV2.1?
  2. Это хорошая практика, чтобы сделать это? (Я единственный, кто работает над этим проектом)

1 Ответ

0 голосов
/ 29 июня 2018

Переписать историю общедоступной ветки вроде Dev обычно не очень хорошая идея. Причина, по которой это не очень хорошая идея, заключается в том, что это может вызвать путаницу у всех, кто проверил эту ветку и в настоящее время использует ее.

Гораздо более безопасным вариантом будет git revert коммит ComV2 через:

git revert <SHA-1 for ComV2>

Затем сделайте все необходимые исправления. Этот параметр добавляет одну или несколько новых фиксаций поверх HEAD ветви Dev и безопасен для всех, кто разделяет ветку.

...