Дарова, хабр! (ничего оригинальнее не придумал)
Сомневаюсь что эта заметка тянет на полноценный пост, но я все же оставлю ее здесь. О чем же пойдет речь?
Все мы слышали о Git. Все мы знаем что он — хорош. Но лишь немногие пытаются что-то с ним делать, как-то его протвикерить. Сразу говорю, тут не будет ничего паранормального, только немного работы с файлом .gitconfig. Да-да, именно с тем файлом, который так трепетно пылится у вас в домашней директории.
Так, мне уже немного надоело писать этот, по сути, бессмысленный вступительный текст, так что давайте уже начнем что-то делать.
Что такое .gitconfig и зачем он нужен?
В стандартной поставке системы контроля версий Git есть замечательный файл — .gitconfig. Его предназначение очевидно из названия. Строго говоря, это пользовательский конфиг. Он позволяет настраивать алиасы, надстройки, etc.
Не знаю как на других системах, но в Linux он лежит в ~. Если его там нету — смело создавайте!
Не знаю как на других системах, но в Linux он лежит в ~. Если его там нету — смело создавайте!
Открываем .gitconfig в удобном для вас текстовом редакторе (для меня это nano).
Подсветка вывода
Читать вывод Git'а «всухую» достаточно сложно. Я видел достаточно много людей которые терпели это. После одной замечательной комманды им полегчало. Для включения цветного вывода добавляем строчки в .gitconfig:
[color]
ui = true
Себя записываем
Зачем это нужно? Если вы запустите git log для какого-то репозитория, вы увидите что для каждого коммита, автор характеризируется через Name и Email. Чтобы нас правильно нашли, настало время задать все это правильно. Внимание! Менять эту информацию во время разработки крайне нежелательно. Она может поломать историю (множественные автора)! Желательно единажды выбрать какое-то имя и конкретный Email.
[user]
name = Anonymous Doody
email = anonymous.doody@anonymous.com
Шаблон коммитов
Не знаю как другие хабровчане работают, но в основном мои коммиты идут в 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
dir = branch
mersq = merge --squash
free = branch -D
А теперь посмотрим что мы сделали:
Без модификаций | С модификациями |
---|---|
|
|
Префиксы для 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 — работать стало приятнее. Все знакомые, которые опробовали это — согласились со мной.
P.S. Если я что-то делаю неправильно или я уже совсем убогий, пожалуйста, отпишите ко мне в ЛС и сообщите/посоветуйте (если вам не сложно, конечно).
UPD: Больше интересного и свежего можно найти тут.
Happy Coding!
Only registered users can participate in poll. Log in, please.
Была ли эта статья для вас полезной?
21.52% Очень много нового узнал422
52.68% Парочка моментов порадовали1033
25.8% Афтар, ты — капитан506
1961 users voted. 632 users abstained.