Вы можете перебазировать вашу текущую ветку поверх самого старого коммита, который вы хотите (v6.8.1). Это переписает вашу историю, хотя, но это возможно.
Отредактировано, чтобы добавить больше
Предположим, ваш код находится в ветке master
Очистить существующий код и создать новую ветвь. Ваш старый код не потерян - он все еще существует в основной ветке.
git symbolic-ref HEAD refs/heads/newbase
rm .git/index
git clean -dxf
Теперь вы находитесь на ветке newbase
, которая является пустой директорией. Добавьте сюда файлы, которые вы хотите использовать в качестве новой базы.
<add the files to the directory>
git add .
git commit -a -m "New base commit v6.8.1"
Новое, у вас есть две ветви master
с вашим исходным кодом и newbase
с вашей новой базой.
Теперь извлеките ветку master
и перебазируйте ее на ветку newbase
git checkout master
git rebase newbase
И затем все, что вам нужно сделать, это исправить конфликты, и у вас есть новая ветка master
, которая начинается с более раннего состояния кода.
Хотя все это немного беспорядок. Если вы просто хотите добавить код в хранилище, просто сделайте первый бит, который создаст новую ветвь. Пометьте его так, чтобы вы знали, что это такое, нет необходимости перебрасывать на него ветку master
, потому что, если вы доберетесь до базы мастера и захотите пойти дальше во времени - вы можете просто увидеть, что находится в другая ветвь.