Git Forget: забыть всё, или свёртываем всю историю в один коммит

Aug 16, 2011 16:17

Читайте дальше: http://www.alexeykopytko.com/2011/git-forget.html

Иногда бывает нужно свернуть всю историю какого-то репозитария в один коммит. В этом случае git rebase -i не подходит, потому что от него останется два коммита, первый и последний.
На помощь нам приходит низкоуровневая команда git-commit-tree.

Для начала скопируем целевой репозитарий куда-нибудь, просто на всякий случай:

$ git clone Project NewProjectДействуем:

$ cd NewProject
$ git reset `echo "начало работы над новым проектом" | git commit-tree HEAD^{tree}`
$ git reflog expire --all --expire-unreachable=now
$ git gc --aggressive --prune=nowПо желанию сообщение можно заменить на любое другое подходящее.
Проверяем:

$ git log
commit bc1f1192112cc1c8141e1efdc0601c7bb67d5aa0
Author: You
Date: Tue Aug 16 21:40:00 2011 +0900

начало работы над новым проектомВот и всё!

useful, linux, git

Previous post Next post
Up