Hi, On Wed, Sep 20, 2006 at 08:54:03AM +0400, Alexey Tourbin wrote: [...] > Зато я примерно понял как устроен git. Сейчас попробую объяснить, может > кому-нибудь от этого будет просветление. git -- это дерево объектов. > Дерево означает что один объект содержит ссылки на другие объекты вниз > по дереву. Объекты бывают двух типов: blob (файлы) и tree (структура > каталогов, в которые надо сувать файлы). tree содержит ссылки на блобы. Объект типа tree содержит список sha1-имён объектов типов blob и tree. > Ещё бывают объекты типа commit; каждый новый commit описывает трансформацию > дерева относительно предыдущего коммита. В объекте commit содержится > ссылка на предыдущий коммит Объект типа commit содержит список sha1-имён объектов типа commit. > и ссылка на дерево Объект типа commit содержит sha1-имя объекта типа tree. > которое перекрывает этот > предыдущий коммит. Всё что новое дерево не перекрывает -- всё то > остается от дерева из старого коммита. Нет, никто ничего не перекрывает, просто за каждым commit'ом закреплено своё дерево. > Так, имея на руках коммит, можно > пройтись вниз по дереву к предыдущему коммиту и т.д., т.е. полностью > развернуть дерево исходников. Нет, для того, чтобы развернуть дерево исходников, соответствующих данному коммиту, не надо ходить к другим коммитам, достаточно просто развернуть дерево, на которое указывает данный коммит. -- ldv