Изменить исходный коммит - PullRequest
1 голос
/ 17 февраля 2012

У меня есть следующая структура:

A-B-C-D (branch-C)
  \    \
   \    H (branch-A)
    \
     \-E-F-G  (branch-B)

Мне бы понравилось:

A-B-C-D  (branch-A and branch-C)
  \    
   \    
    \
     \-E-F-G-H  (branch-B)

Как мне это сделать?

Ответы [ 2 ]

3 голосов
/ 17 февраля 2012

При условии, что у вас получен ответвление B:

git cherry-pick branch-A
git push . branch-C:branch-A -f

Теперь у вас есть возможность удалить либо ответвление A, либо ответвление C - или просто оставить оба.

1 голос
/ 17 февраля 2012
git checkout branch-B
git cherry-pick branch-A  # you could also specify H directly

Теперь у вас есть H поверх G.

git checkout branch-A
git reset --hard HEAD^    # you could also specify D directly
                          # HEAD is the current commit; HEAD^ is the previous one

Теперь вы удалили H из ветви, которая содержала A-B-C-D.

Обратите внимание, что это имеет смысл только в том случае, если в начале есть ссылка на ветку, указывающая на H и G, так как объект фиксации в git включает его предков; «перемещение» коммита ничего не значит, поскольку оно меняет ваши ветви.

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