Чтобы объединить все предыдущие коммиты в один (например, чтобы удалить всю историю), можно воспользоваться командой:
После этого список всех коммитов откроется в текстовом редакторе, и напротив каждого из них, кроме первого, нужно будет заменить слово "pick" на "squash". Тогда все предыдущие коммиты будут включены в тот, который находится на первом месте в списке. Затем его можно отредактировать:
Но можно сделать это быстрее с помощью команды:
которая создаст новый коммит на основе всего существующего дерева.
В обоих случаях при публикации изменений необходимо добавлять опцию "-f":
git rebase --root -i
git commit --amend --author "Name <e-mail>" --date="$(date -R)"
git reset $(git commit-tree HEAD^{tree} -m "commit message")
В обоих случаях при публикации изменений необходимо добавлять опцию "-f":
git push -f
Еще есть интерактивный способ менять commit messages https://help.github.com/articles/changing-a-commit-message/
ОтветитьУдалить