Как этим пользоваться

Тут рассмотрено несколько типичных операций, которые нужно уметь делать с Гитом.

Решения не приведены намеренно: советую поискать ответы и поэкспериментировать. Эксперимент должен быть не мысленным: все операции стоит проделать самому, руками. В идеале – собрать всё вместе в статью или пост в блоге (потом проставим тут ссылки на такие посты).

Итак, задачи.


Подтянуть чужие изменения

Утро, ты пришёл на работу. Как к локальной версии исходного кода добавить те изменения, которые коллеги сделали вчера?


Поделиться своими изменениями

Ну вот, ты поработал. Теперь нужно поделиться своим кодом с другими. Как?


Разобраться с конфликтами

При попытке отправить свои измения на сервер ты узнал, что твой коллега изменял тот же файл, что и ты, теперь непонятно, какая версия правильная. Как быть?


Отпочковать ветку

Тимлид дал тебе задачу. Объяснение он закончил фразой "делай в фичабранче". Когда ты спросил, что это значит, он промямлил что-то про гитфлоу. Что делать-то?


Слить свои изменения

Задачу ты закончил, теперь ты получил указание "замерджить свой бранч в дев". Что это за дичь? Как делать?


Добавить в одну ветку изменения из другой

Следующую задачу ты делаешь так же, в отдельной ветке от дева. Правда, долго: уже неделя прошла, а задача не готова. Лид даёт указание "подлить изменения из дева в свой бранч". Шта?


Перенести коммит

Ты сделал задачу, но ошибся с веткой, в которую коммитить: вместо дева сделал коммит в мастер. Хорошо, что не запушил. Теперь надо этот коммит перенести в дев. Как это сделать?


Мануал Алексея Савченко, в котором есть ответы на эти и другие вопросы.

Ни единого коммита без git diff

Это одна из самых полезных привычек в работе с git — перед каждым коммитом запускать git status и git diff, внимательно проглядывать изменения. Часто на глаза попадаются:

  • дебажные print и console.log
  • устаревшие комментарии
  • опечатки и ошибки в тексте
  • устаревшая документация
  • следы экспериментов которым не место в этом коммите

Все это становится заметным при запуске git diff благодаря тому что в консоли текст визуально сильно отличается от привычного в редакторе. Исчезает замыленность взгляда, ошибки сами бросаются в глаза.

Короткая запись команд

Такие команды как git checkout и git status используются часто, и раз за разом приходится печатать эти длинные названия в консоли. Вот что стоит сделать:

# создаем короткие псевдоними для часто используемых команд
git config --global alias.ch checkout
git config --global alias.cm commit
git config --global alias.st status

Чрезвычайно полезный прием, экономит кучу времени и сил. Подробнее про алиасы на GitHowTo.