Git в экосистеме Drupalа Вадим Валуев Много.ру
Контроль версий: когда и зачем Сборка простого сайта через настройки – контроль версий не нужен Разработка самописного кода (в том числе css) Командная работа Разработка версий продукта (в том числе простого сайта, сделанного через настройки)
Системы контроля версий: немного истории CVS Subversion Mercurial Bazaar Git
Парадигма гита: распределённость, ветвление
Основная схема работы с гитом
MAKE ATOMIC COMMITS Commit often Perfect later Publish once
Git антиинтуитивен
Основные операции Клонирование: git clone Ветвление: git checkout –b Слияние: git merge Коммит: git add + git commit Социализация: git fetch, git pull, git Полезные команды add -u, commit –a Посложнее: git cherry-pick, git stash
Синтаксис гита Was sieht sie Wie sieht sie aus Was sieht sie vor git checkout –b git branch –d Checkout: переключить ветки, убить изменения, создать ветку.
Когда что-то пошло не так До коммита: git checkout -- HEAD В последнем коммите или его комментарии есть баг: git commit --amend Вы обнаружили, что делали не то (к счастью, другие об этом ещё не знают): git reset --soft + git commit git reset --hard
Когда всё пошло не так «Теория – это когда все всё знают, но ничего не работает. Практика – это когда всё работает, но никто не знает, почему. Мы совмещаем теорию и практику – ничего не работает и никто не знает, почему» git clean git log: its crazy flexible. git reset: ищем правильную точку git revert git checkout
Commit-ish, tree-ish and rubbish dae86e1950b1277e545cee cfe735 dae86e19 master^2 master~2 :/some bug HEAD:sites/all HEAD, ORIG_HEAD, FETCH_HEAD, CHERRY_PICK_HEAD
Git серверы В распределённой системе контроля версий все репозитории равны, но некоторые более равны. Gitolite: контроль доступа по http/ssh, распределение прав на ветки и файлы, логгирование Gitosis: управление ключами, правами большого количества пользователей Github – веб-интерфейс, управление командой
Git для Drupalа.gitignore Settings.php Development modules Features Files Stage file proxy Drupal Code Quality
Ещё трюки Предупреждение non-fast-forward commits Code revision on commits Code formatting on commits Git hooks in general
Гит в процессе разработки Интеграция с IDE (PHPStorm, Net Beans, Eclipse PDT) Интеграция с IssueTrackers (Jira, Redmine)
Спасибо организаторам компа за отличное мероприятие и предоставленную возможность выступить. Слушателям – за внимание и вопросы We are hiring skype:novosibcool