Непосредственное создание новой отключенной ветки git

Я начал проект и уже совершил несколько коммитов. Я бы хотел изменить свой подход и записать все с чистого листа. Можно ли зафиксировать дерево работы как несвязанную первую фиксацию напрямую, или мне действительно нужно использовать для этого временный пульт?

В основном, как я знаю, что могу:

mkdir BOO
cd BOO
git init
... # create the first and maybe more commits...
cd ..
git remote add boo BOO
git fetch boo
git checkout -b boo/master new-master
git remote delete boo
rm -rf BOO/

Действительно ли мне нужно использовать временное удаленное определение, как указано выше, или есть способ напрямую создать несвязанную начальную фиксацию?

(Если это не очевидно из вопроса, я хотел бы, чтобы исходная основная ветвь оставалась нетронутой, по крайней мере, на некоторое время для целей проверки (git diff) и для сбора вишен.)

1 ответ

Другой очевидный подход - сделать

git checkout -b master-again
git rebase -i --root

(на самом деле не имеет значения, в какой ветке вы находитесь в начале) и удалите каждую фиксацию в открытом редакторе, кроме начальной фиксации, которая будет отмечена как edit а затем заменяется первоначальной фиксацией измененного подхода, когда начинается фактическая интерактивная перебазировка.

Я думаю, что можно было бы автоматизировать это одной командой, установив GIT_EDITOR указать подходящий сценарий.

Я ищу что-то еще более простое и уже существующее.

Другие вопросы по тегам