Хранение кода. Репозиторий.
- Зачем репозиторий
- Версионирование (сохранение набора файлов в том или ином состоянии)
- Понятие рабочей копии и связанные с этим действия
- Важность наличия истории версий
- Теги
- Ветки
- Понятие diff (какие бывают, алгоритмы вычисления)
- Применение diff
- merge
- cherrypicking
- rebase
- Взаимодействие с репозиторием
- DVCS
- Версионирование (сохранение набора файлов в том или ином состоянии)
- Архитектура rccs/cvs/svn
- Архитектура git
- Объекты
- Деревья
- Коммиты
- Бранчи и теги
- Подписанные теги
- Использование git
- working copy, index, repo
- status
- add
- commit
- reset
- diff
- checkout
- log
- blame
- bisect
- stash
- branches, remotes
- что надо предыдущим командам говорить, чтобы смотреть на другие бранчи
- merge
- cherrypick
- rebase
- push/pull
- am
- hooks
- gitk, gitweb
Юзкейсы
- Flow: работа с репозиторием
- Flow: добавление мелкой фичи
- Flow: добавлений крупной фичи
- Flow: синхронизация репозиториев
- Flow: коммит в репозиторий большого количества изменений
- Flow: подготовка патча в апстрим
- Flow: применение патчей
- Flow: поиск регрессий
- git-cvs, git-svn, git-hg
- напиливание хуков
- working copy, index, repo
ToDo
- Алгоритмы хэширования в git
- Уточнить, как сейчас хранятся рефы и теги в git
- deta-сжатие в git (pack)
- Как устроен svn
- Уточнить, как хранятся поддеревья в git
- Уточнить про git-cvs