Что нам стоит Git настроить!

от автора

Дарова, хабр! (ничего оригинальнее не придумал)

Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?

Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.

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

Что такое .gitconfig и зачем он нужен?

В стандартной поставке системы контроля версий Git есть замечательный файл — .gitconfig. Его предназначение очевидно из названия. Строго говоря, это пользовательский конфиг. Он позволяет настраивать алиасы, надстройки, etc.

Не знаю как на других системах, но в Linux он лежит в ~. Если его там нету — смело создавайте!

Открываем .gitconfig в удобном для вас текстовом редакторе (для меня это nano).

Подсветка вывода

Читать вывод Git’а «всухую» достаточно сложно. Я видел достаточно много людей которые терпели это. После одной замечательной комманды им полегчало. Для включения цветного вывода добавляем строчки в .gitconfig:

[color]         ui = true 

Себя записываем

Зачем это нужно? Если вы запустите git log для какого-то репозитория, вы увидите что для каждого коммита, автор характеризируется через Name и Email. Чтобы нас правильно нашли, настало время задать все это правильно. Внимание! Менять эту информацию во время разработки крайне нежелательно. Она может поломать историю (множественные автора)! Желательно единажды выбрать какое-то имя и конкретный Email.

[user]         name = Anonymous Doody         email = anonymous.doody@anonymous.com 

Шаблон коммитов

Не знаю как другие хабровчане, но я вот KDE Developer и в основном мои коммиты идут в KDE Edu проекты. Там четко диктуют правила формы и вида коммита, так как он парсится разными ботами и т.д. Чтобы не дай Бог ошибиться или что-то неправильно сделать существуют шаблоны. Такой шаблон очень просто сделать (а можно и взять где-то). Чтобы он отображался во время git commit нужно добавить такое:

[commit]         template = ~/.commit-template 

В данном случае, ~/.commit-template конечно же может быть любым файлом в вашей файловой системе.

Credential Helper

Бывает такое что нужно выполнить несколько операций с удаленным репозиторием за раз. Каждый раз вводить имя и пароль, имя и пароль, имя и… Напрягает, нет? Меня напрягает. Начиная с версии 1.7.10 Git поддерживает Credential Helper.

[credential]         helper = cache --timeout=<время> 

Ставим нужное время (у меня это 3600 — один час) и радуемся!

Алиасы для частых команд

Я очень часто пользуюсь командами checkout и branch, например. Писать по три-четыре раза одно и тоже — надоедает. Давайте заменим их на более лаконичный вариант: cd и dir, например.

[alias]     cd = checkout [alias]     dir = branch [alias]     mersq = merge --squash [alias]     free = branch -D 

А теперь посмотрим что мы сделали:

Без модификаций С модификациями
git pull --rebase git branch git checkout temp git add -u git commit git merge master git checkout master git merge --squash temp git commit git push git branch -D temp 

git pull --rebase git dir git cd temp git add -u git commit git merge master git cd master git mersq temp git commit git push git free temp 

Префиксы для remote

Есть один трюк, который нередко используется разработчиками. Это префиксы для remote. Они позволяют сократить длину адреса к удаленному репозиторию. Можно задать такие для read-only и push. Зачем? Это логично для open-source проектов. Для уменшения нагрузки на сервер и скорости, лучше pull’ить из anongit (read-only) без использования SSH. Что стоит у меня для KDE?

[url "http://anongit.kde.org/"]     insteadOf = kde: [url "git@git.kde.org:"]     pushInsteadOf = kde: 

Давайте разбираться. Тут мы настроили два URL для pull и push. Задали префикс kde. Что это нам дает? Посмотрим на примере (в статье не указан префикс gh — для GitHub):

Без модификаций С модификациями
git clone http://anongit.kde.org/marble git clone https://github.com/user/repository 

git clone kde:marble git clone gh:user/repository 

Стало лучше, не правда ли?

Заключение

В статье были опущены мои всякие «экзотические» алиасы и доп. префиксы для разных сервисов. Смело могу сказать, что после того как потвикерил Git — работать стало приятнее. Все знакомые, которые опробовали это — согласились со мной.

P.S. Если я что-то делаю неправильно или я уже совсем дно, пожалуйста, отпишите ко мне в ЛС и сообщите/посоветуйте (если вам не сложно, конечно).

Happy Coding!

ссылка на оригинал статьи http://habrahabr.ru/post/164297/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *