Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Advanced GIT (Продвинутый ГИТ)

Advanced GIT (Продвинутый ГИТ)

Моё первое выступление о тех возможностях git'a, которые редко используют программисты в своей практике.
Презентация разделена на 3 уровня сложности (по уровням знаний программистов): в них я попытался описать различные команды git, которые будут полезны как новичку в распределенных системах управления файлами, так и подкованному человеку.

Denis Veselov

August 23, 2012
Tweet

Other Decks in Programming

Transcript

  1. git checkout FILENAME Восстановить удалённый файл • Случайно удалили файл

    • Внесли много изменений, но потом поняли, что они не нужны При условии, что этот файл был закоммичен ранее
  2. git rm *.pyc Удаление из индекса не нужных файлов •

    В индекс попали временные файлы Удаление произойдёт из индекса, но в истории коммитов файл всё равно останется
  3. git stash Спрятать файлы на некоторое время • Нужно срочно

    поправить что- нибудь другое, а текущие изменения ещё не доделаны Восстановить последние спрятанные файлы можно коммандой git stash apply
  4. git revert c1b00bc Отмена изменений, внесённых коммитом • Глубоко в

    истории сделано какое- то изменение, которое нужно аккуратно отменить
  5. git log -p FILENAME История изменений файла или папки •

    Нужно посмотреть по коммитам для отдельного файла какие с ним производились изменения Это же самое действие можно проделать на codebase или github (ссылка history у файла)
  6. git cherry-pick HASH Применение изменений коммита к другой ветке •

    В неактивной ветке сделали важый коммит и его надо применить к активной
  7. git bisect Бинарный поиск по коммитам • В какой-то момент

    всё сломалось, а заметили вы это только сейчас См. детальную помощь: man git bisect
  8. git filter-branch Переписывание истории коммитов • В историю коммитов попал

    файл с секретными ключами Удалить файл одной командой: git filter-branch --tree-filter 'rm secret/file' HEAD
  9. git instaweb Посмотреть репозиторий в браузере • Удобно, если репозиторий

    локальный и не хочется его куда- нибудь загружать Для работы нужен веб-сервер, например lighttpd
  10. git submodule add Добавить сабмодуль • Если в проекте используются

    внешние модули, которые надо периодически обновлять