Могу ли я удалить предыдущие коммиты из ветки? - PullRequest
1 голос
/ 13 июня 2019

Это немного сложнее, чем предыдущие темы, которые я нашел. Скажем, у меня есть ветка с кучей коммитов. В какой-то момент я понял, что не хочу скрытых коммитов (которые были вызваны ошибочным слиянием). Итак, история примерно такая:

e48ca7de8t
a263f02809 --> unwanted commit
59d785a8e2 --> unwanted commit
2045cc737a
59c2a4127c
f9daf617sj
5f59c2a412
HEAD

По сути, я хотел бы избавиться от двух нежелательных коммитов. Это то, что можно сделать?

Полагаю, я мог бы продолжать делать git reset HEAD~ снова и снова, пока не достигну того, что мне не нужно, спрятать оставшиеся изменения и сделать git reset --hard, чтобы сделать то, что мне нужно. Но мне интересно, есть ли более чистый и безопасный способ сделать это.

Спасибо!

1 Ответ

1 голос
/ 13 июня 2019

Вы можете использовать git rebase --onto, чтобы перебазировать серию коммитов в конкретный коммит. Для приведенного выше примера (при условии, что имя ветви mybranch:

git rebase --onto 2045cc737a e48ca7de8t mybranch 

Таким образом, нежелательные коммиты

a263f02809 --> unwanted commit
59d785a8e2 --> unwanted commit

не учитываются при перебазировании.

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