Изменить "первичную" ветку git commit? - PullRequest
0 голосов
/ 25 февраля 2012

На GitHub мой сетевой график выглядит так

---o---o---X--------------o---o master
            \
             Y-----Z test
              \
               o---o------o----------o devel


Тогда как в «духе» это должно выглядеть примерно так.

---o---o---X--------------o---o master
            \
             Y----o-----o-----o-----------o devel
              \
               Z test

Ветвь test была просто тестом новой функции, с первого графика она выглядит так, как будто devel - ветвь с test

Ответы [ 2 ]

0 голосов
/ 25 февраля 2012

Проблема в том, что Y "принадлежит" как ветвям test, так и devel. Чтобы исправить это, я устроил так, что он «принадлежит» только devel филиалу.

Часть 1 (с использованием Gitk)

  • Создать патч от X до Z
  • Создать новую ветку temp из X

Часть 2 (с использованием git)

  • Применить исправление к temp ветви
  • Commit

Часть 3 (назад к Gitk)

  • Hard reset test до temp
  • Удалить temp ветка

gitready.com / начинающий / 2009/02/02 / нажимной и-удалить-ветви

0 голосов
/ 25 февраля 2012

Я собираюсь назвать master~2, точку дивергенции, "X" для ясности.

Вы можете переместить ветку test, чтобы она лежала поверх X, а затем перебазировать devel, чтобыисходить из test.

Невозможно выполнить обмен без изменения всех хэшей коммитов на devel и master, поскольку каждый коммит содержит ссылку на своих родителей и то, что выхочу сделать изменения родителей обоих test и devel~4.Таким образом, только команды переписывания истории, такие как rebase или перемещение имен ссылок, достигнут вашей цели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...