GIT
Что такое GIT
Коротко о главном
Команды, без которых никуда
Git flow
Фичи
Релизы
Хотфиксы
Заглянем внутрь
Blob, Tree and Commit = Object
Object is ..?
Метка = Object
Ссылки и HEAD
Pack-файлы
Тупые и умные протоколы
Итого
378.64K

Git. Что внутри и как оно работает

1. GIT

Что внутри и как оно работает?

2. Что такое GIT

• Система контроля версий, в основе которой наборы слепков;
• Локальное чудо;

3. Коротко о главном

• Workflow
1.
2.
3.
4.
Изменяем файлы =>
Добавляем их слепки в список подготовленных =>
Добавляем слепки в базу
Повторить с 1…

4. Команды, без которых никуда

• Git help
• Git init
• Git clone
• Git add
• Git status
• Git commit
• Git diff
• Git log
• Git checkout
• Git remote
• Git fetch
• Git pull
• Git push
• Git branch
• Git merge
• Git rebase

5. Git flow

• Ветви функциональностей (Feature branches)
• Ветви релизов (Release branches)
• Ветви исправлений (Hotfix branches)

6. Фичи

• Могут порождаться от: develop
• Должны вливаться в: develop
• Используются для разработки новых функций, которые должны
появиться в текущем или будущем релизах
git flow feature start MYFEATURE
git flow feature finish MYFEATURE

7. Релизы

• Могут порождаться от: develop
• Должны вливаться в: develop и master
• Используются для подготовки к выпуску новых версий продукта
git flow release start RELEASE
git flow release finish RELEASE

8. Хотфиксы

• Могут порождаться от: master
• Должны вливаться в: develop и master
• Порождаются необходимостью немедленно исправить
нежелательное поведение производственной версии продукта.
git flow hotfix start VERSION
git flow hotfix finish VERSION

9. Заглянем внутрь

• Что происходит после git init?
• Объекты гита

10. Blob, Tree and Commit = Object

11. Object is ..?

• Header + Content, где Header = “object.Type content.Length\0”
• SHA-1 для контрольной суммы
• Zlib для сжатия заголовка и контента

12. Метка = Object

• Легковестная метка – просто ссылка на коммит;
• Аннотированная метка – ссылка на специальный объект;

13. Ссылки и HEAD

• Любая ветка – это ссылка;
• Ссылки – это файлы, внутри которых хэш от коммита, на который
они указывают;
• HEAD – это символическая ссылка;
• HEAD указывает на другую ссылку;

14. Pack-файлы

• Хэй-хэй, вот у нас много файлов, а память нерезиновая, братюнь!
• Я исправил одну строчку, а гит целый файл создал!
• Pack-файл и Pack-индекс спешат к вам на помощь.
Чем-то похоже на то, как сейчас веб-разработчики работают со
спрайтами;

15. Тупые и умные протоколы

HTTP
SSH
• GET
GET
GET
GET
GET
GET
GET
…….
Я усталь
• send-pack
receive-pack
• fetch-pack
upload-pack

16. Итого

English     Русский Правила