Мне нужно переписать историю моего хранилища, потому что оно содержит некоторые учетные данные. Поскольку я должен изменить корневой коммит, я следовал инструкциям Git Faq :
git rebase -i
позволяет вам удобно редактировать любые предыдущие коммиты, кроме корневого. Следующие команды показывают, как это сделать вручную.
# tag the old root
git tag root `git rev-list HEAD | tail -1`
git checkout -b new-root root
# edit...
git commit --amend
# check out the previous branch
git checkout @{-1}
# replace old root with amended version
git rebase --onto new-root root
# cleanup
git branch -d new-root
git tag -d root
Моя проблема в том, что у меня есть две ветви и несколько тегов в репозитории, и я бы хотел, чтобы моя история переписывалась так же. Репо еще не публично, так что это не будет проблемой. Я задавал подобный вопрос ранее, но в этом случае команда git rebase
не использовалась. Вот базовый график моего репо:
+ master branch
|
| + topic branch
| |
| |
+---+
|
|
|
+ TAG
|
+ Initial commit, the commit I'd like to amend for all branches
Это вообще возможно?