Слишком рано ветвился, что делать? - PullRequest
0 голосов
/ 18 октября 2018

Я был на ветке с одним коммитом.Я создал новую ветку, когда мне нужно было сначала вернуться к мастеру.

Как удалить первый коммит новой ветки, не затрагивая ветку, в которой она была изначально создана?

По сути, я хочу переместить начальный коммит новой ветки на 1.

1 Ответ

0 голосов
/ 18 октября 2018

Важно: перед игрой с rebase либо протестируйте команды на копии вашего репозитория, либо узнайте, как использовать reflog для отмены изменений в вашем репозитории.

Вы, похоже, описываете ситуацию следующим образомthis:

master
*
|
|  b1    b2
*  * --- *
| / 
|/
*

и вместо этого вы хотите

master
*
| * b2
|/
*
| * b1
|/
*

В этом случае выполните ребазинг следующим образом:

git rebase --onto master^ b1 b2

Это перемещает все коммиты, доступные с b2 но не из b1 и коренит их при фиксации непосредственно перед master.Обратите внимание, что вы действительно можете рассчитывать только назад от master, чтобы определить правильное место назначения;вы не можете рассчитывать вперед от общего предка b1 и master, потому что коммиты не отслеживают своих детей, только их родителей.

...