Как пользоваться Git
Тут рассмотрено несколько типичных операций, которые нужно уметь делать с Гитом.
Решения не приведены намеренно: советую поискать ответы и поэкспериментировать. Эксперимент должен быть не мысленным: все операции стоит проделать самому, руками. В идеале – собрать всё вместе в статью или пост в блоге (потом проставим тут ссылки на такие посты).
Итак, задачи.
Подтянуть чужие изменения
Утро, ты пришёл на работу. Как к локальной версии исходного кода добавить те изменения, которые коллеги сделали вчера?
Поделиться своими изменениями
Ну вот, ты поработал. Теперь нужно поделиться своим кодом с другими. Как?
Разобраться с конфликтами
При попытке отправить свои измения на сервер ты узнал, что твой коллега изменял тот же файл, что и ты, теперь непонятно, какая версия правильная. Как быть?
Отпочковать ветку
Тимлид дал тебе задачу. Объяснение он закончил фразой “делай в фичабранче”. Когда ты спросил, что это значит, он промямлил что-то про гитфлоу. Что делать-то?
Слить свои изменения
Задачу ты закончил, теперь ты получил указание “замерджить свой бранч в дев”. Что это за дичь? Как делать?
Добавить в одну ветку изменения из другой
Следующую задачу ты делаешь так же, в отдельной ветке от дева. Правда, долго: уже неделя прошла, а задача не готова. Лид даёт указание “подлить изменения из дева в свой бранч”. Шта?
Перенести коммит
Ты сделал задачу, но ошибся с веткой, в которую коммитить: вместо дева сделал коммит в мастер. Хорошо, что не запушил. Теперь надо этот коммит перенести в дев. Как это сделать?
Мануал Алексея Савченко, в котором есть ответы на эти и другие вопросы.
Ни единого коммита без 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.