Similar presentations:
Git. Что внутри и как оно работает
1. GIT
Что внутри и как оно работает?2. Что такое GIT
• Система контроля версий, в основе которой наборы слепков;• Локальное чудо;
3. Коротко о главном
• Workflow1.
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. Тупые и умные протоколы
HTTPSSH
• GET
GET
GET
GET
GET
GET
GET
…….
Я усталь
• send-pack
receive-pack
• fetch-pack
upload-pack