Git - это набор инструментов.
Какие инструменты вам нужны для создания книжного шкафа или бюро? Возможно, подойдут настольная пила, молоток и гвозди, особенно если у вас есть несколько головок для настольной пилы, чтобы сделать хорошую канавку. Или вы можете использовать какой-то другой тип s aws, маршрутизатор для изготовления столярных изделий (ласточкин хвост!), Дрель для направляющих отверстий, винты и отвертку. Это было бы лучше?
Что если вы хотите какую-нибудь необычную прокрутку на передней части вашей мебели? Вы хотите ленточную пилу, лобзик, рашпили, файлы? Может быть, зубило? Не могли бы вы использовать отвертку в качестве долота?
Git - это достаточно полный набор инструментов. Вы можете использовать любой из тех, которые вам нравятся, при условии, что вы получите желаемый конечный результат. Какие из них делают это самым легким ... ну, это зависит от того, что вам кажется легким Если обрабатывать несколько коммитов, подойдет любой из различных ручных инструментов, таких как git rebase -i --root
или git checkout --orphan
, за которыми следуют определенные операции. Ваш примерный метод тоже подойдет: просто выберите из последних двух коммитов вишню, используя старое имя ветви, чтобы найти их, а затем отмените старое имя ветви, если оно вам больше не нужно.
Не забудьте обновить любые теги, которые вы хотите обновить, тоже. Обычно это плохая идея обновить тег, но вы в основном говорите всем, у кого есть клон исходного репозитория, выбрасывать весь их клон, в пользу этого нового, который вы создаете - ни один из коммитов не sh Идентификаторы будут совпадать на всех; новая история совершенно не связана с исходной историей.
Метод, описанный jthill в комментарии - это тоже простой способ выполнить задание: вставить трансплантат root, используя git replace
в точке, где вы хотите усечь историю; затем выполните git filter-branch
без фильтров (но с --all --tag-name-filter cat
), чтобы закрепить трансплантат на месте. Это инструментальный подход.