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,449