LINUX.ORG.RU

как превратить кусок мастера в ветку, а из самого мастера его удалить?

 


0

1

под куском подразумевается один и более коммитов.

допустим у меня есть

A-B-C-D (master)
я хочу что бы было так:
  B-C (some_branch)
 /
A-D (master)
на сколько я понял из гугления это достигается путём checkout some_branch -b, cherry-pick B and C, checkout master, reset -hard HEAD~3, но только ветка будет от D начинатся, да и сам D удалится тоже. ничего другого не придумал пока-что. существует ли ещё какой-нибудь способ это сделать? например rebase там какой-нибудь, со специфическими ключами?

спасибо.

Знаю только кривой способ:

git checkout -b some_branch master
git reset --hard HEAD~1
git checkout master
git rebase -i HEAD~3 # последние 2 pick заменить на squash
Последний шаг может быть заменён на
git reset --soft HEAD~3 && git commit -m D

backbone ★★★★★
()

Можно попробовать так.

git checkout -b new A
git cherry-pick B
git cherry-pick C
git checkout master
git rebase -i A
В последнем интерактивном ребейзе удалить строки с B и С. A,B,C,D - соответственно хэши.

Belkrr
()
Ответ на: комментарий от ZuBB

да я шучу конечно. в правильно организованных репозиториях вообще ручками ничего пушнуть нельзя.

x0r ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.