Как изменить начальный коммит ветки после filter-branch - PullRequest
0 голосов
/ 22 февраля 2019

После filter-branch на master (для добавления подписи) у меня есть это:

A-B-C-D-E-F (master)

A'-X-Y-Z (branch xxx)

где A '- старый начальный коммит.Я хочу "переподключить" мою ветку "xxx" к мастеру, чтобы начальный коммит A имел что-то вроде этого:

A-B-C-D-E-F (master)
 \
  X-Y-Z (branch xxx)

Как это сделать?Спасибо

Ответы [ 2 ]

0 голосов
/ 22 февраля 2019

Вы можете следовать инструкциям.

git checkout master
git checkout <SHA-HASH-OF-A-AFTER-FILTER-BRANCH> #Now your head should be in detached state at commit-hash of A
git checkout -b <NewConnectedBranch> #B is created from A commit
git cherry-pick X..Z #Applying changes from the disconnected branch
0 голосов
/ 22 февраля 2019

Трехшаговое решение с включенной опцией резервного копирования:

# create a backup for the branch
git checkout -b backup-xxx xxx

# force position of branch xxx at A
git branch -f xxx A

# get the commits you wanted from the backup branch
git checkout xxx
git cherry-pick X Y Z

Вы получите backup-xxx в состоянии xxx, которое было до операций, на случай, если вы пожалеете о своем переезде позже.

План резервного копирования:

# to restore branch xxx in its previous state
git branch -f xxx backup-xxx
...