Перейти к содержимому

22.02.2012

Git sugar for ur bash

Решил написать небольшую заметку о том, как сделать работу с git’ом из консоли немного удобнее и приятнее.
Хочу осветить 3 небольших момента:

  • Украшаем приглашение командной строки, чтобы сразу было видно в какой ветке находимся.
  • Автодополнение веток и тэгов при работе в консоли.
  • Настройка алиасов git.

Отображение текущей ветки в приглашении.

Не знаю, кому как, а я привык работать с git из консоли. Поэтому у меня всегда открыт шелл с директорией проекта. И порой забываешь, в какой ты сейчас ветке находишься, и надо писать git status, чтобы это увидеть. Крайне удобно было бы сразу видеть текущую ветку, да и вообще статус рабочей директории. Без проблем! Все что нужно, это немного подправить свой .bash_profile|.bashrc. Меняем приглашение шелла слендующим образом:

После этого надо или перезайти в консоль или просто применить новые изменения:

Теперь наша консоль будет выглядеть вот так:

Так как Syntax Highlighter все раскрасил по своему, то вот скриншотик как это выглядит на самом деле.

Таким образом один взгляд на приглашение шелла сразу дает нам возможность понять, в какой ветке мы сейчас находимся и есть ли там какие-то неучтеные изменения.

Автодополнение веток и тэгов.

Такс, текущую ветку в шелле мы уже видим. Но ведь довольно часто приходится переключаться на другие ветки или тэги. Было бы крайне удобно, если бы шелл подсказывал названия веток так же как и имена директорий и команд. В OS X токого по умолчанию нет. Бинарные пакеты с git’ом ставят только сам git. В Убунтах, кажется, автодополнение есть сразу. Но тем не менее, всем кому это актуально, вот как это легко сделать:

Все. После этого по табу у вас будут дополнятся ветки и тэги, как локальные так и удаленные.

Настройка алиасов.

Ну и последний маленький кусочек оптимизации работы с git — настройка алиасов. Программисты — вообще народ ленивый, собственно именно по этому они пишут программы, а не делают все руками 🙂 И мне вот каждый раз набирать git checkout или git commit очень длинно и лень. Благо в git есть замечательные алиасы. Добавляем в свой gitconfig алиасы на свой вкус. У меня например забиты вот такие:

После этого достаточно написать в консоли git logpg и гит превратит это в git log —pretty=format:\»%h — %an: %s\» —graph

Ну вот и все. Если кому интересно, вот мой bash_profile на гитхабе.

Узнайте больше из MacOS, Web-Разработка