Git
part 1
Систем контроля версии не существует
Jit
Надо как то хранить код
Например так

Но без истории совсем грустно :(

Но без истории совсем грустно :(
cd /project/project1/
mv ./ ./codeПоэтому после завершения каждой фичи будем делать папку

Что же я делал ? :(

Будем писать что делали

Структура папок

Первый релиз

Кодим дальше

Но критикал баг в проде :(

Исправили, но куда сохранить fix?

Линейная организация не подходит :(
Направленный ациклический граф

Как преобразовать список в дерево?

Добавить ссылку на предыдущий снапшот

Получилась такая логическая структура
snapshot-98
snapshot-99 (release 1.0.0)
snapshot-100
...
snapshot-148
snapshot-149
snapshot-150 (release 1.0.1)
snapshot-151
snapshot-152
snapshot-153 (release 1.0.3)
snapshot-154Но как определить последний комит в ветке ?
snapshot-98
snapshot-99 (release 1.0.0)
snapshot-100
...
snapshot-148
snapshot-149
snapshot-150 (release 1.0.1)
snapshot-151
snapshot-152
snapshot-153 (release 1.0.3)
snapshot-154Нам нужны бранчи
Сделаем их

теперь при каждом комите правим указатель

но мы захотели теги
Структура проекта

Но раз есть бранчи надо мержить
Сложнее
придется создать коммит

У нас появился еще один разработчик !
просто копируем все папки ему на комп
это же почти децентрализированая система контроля версий
Вроде все норм
- можно работать паралельно
- офлайн
- быстро смотреть историю и т.д.
Но есть проблема
кализия именн из за сквозной нумирации

Сделаем имена снапшотов уникальными
Было

Используем SHA1
de4bd295df663323aa83893be8f1bbc246a7f13c
Это и будет новое имя

Теперь дериктория выглядит так

Правила для коммитов
- имеет уникальный ID
- имя это SHA1 от:
- состояние деректории на момент комита
- сообщение
- дата
- имя предыдушего комита
Правила для коммитов
- Каждый коммит уникален
- Коммит не возможно изменить
- Историю нельзя изменить но можно переписать :)

На этом проблемы не заканчиваются
Прошло пару месяцев
и на дисках стало кончаться место
проанализируем проблему
ТОДО
листинг комитов
Как можно избавиться от дублирования
А если сложить все файлы в одну директорию
Давайте посмотрим в реальный git

Давайте посмотрим в реальный git

Давайте посмотрим в реальный git

Давайте посмотрим в реальный git

Cgfcb,j pf dybvfybt
Dfib djghjcs
Git
By Sergey Andreev
Git
- 1,650