git config - это мощная команда Git. Вы можете использовать файл конфигурации Git для того, чтобы подстроить Git под себя.
Этот файл находится на уровне проекта, в котором был запущен Git (/project/.git/config), или на корневом уровне (~/.gitconfig). Если в нем не указаны никакие конфигурации, то это значит, что Git использует настройки по умолчанию.
Из этой статьи вы узнаете о некоторых полезных конфигурациях Git, которые помогут вам оптимизировать ваш процесс разработки. Все советы, которыми я здесь поделюсь, когда-то помогли мне. Существует также множество других вещей, которые вы сможете опробовать уже после того, как прочитаете эту статью.
Советы по конфигурациям Git
Ниже представлены несколько масштабных советов по конфигурациям Git.
1. Выберите для Git редактор по умолчанию
Когда вы пытаетесь сделать коммит в Git, то он по умолчанию открывает редактор vi, который выглядит вот так:
Этот редактор может оказаться не таким простым, и если вы хоть чем-то похожи на меня, то будете использовать тот редактор для написания коммитов, который вам больше нравится. В файле ~/.gitconfig вам нужно добавить следующее:
[core]
editor = code --wait
или вы можете воспользоваться командой оболочки:
git config --global core.editor "code --wait"
Эта конфигурация указывает Git, что для операций по типу коммитов и тегов мы будем использовать свой редактор VSCode.
Что касается других редакторов, вам поможет следующая таблица:
Конфигурация редактора для Git
2. Очистка Git в процессе выборки
Знаете ли вы что делает команда очистки в процессе выборки?
Если кратко, то очистка в процессе выборки – это метод очистки, который, когда вы выполняете команду git fetch --prune, удаляет все устаревшие и давно ненужные ссылки в вашем каталоге .git.
Автоматизировать этот процесс можно не только с помощью параметра --prune, но и путем добавления в ~/.gitconfig следующих строк:
[fetch]
prune = true
или с помощью следующей команды:
git config --global fetch.prune true
При этом очистка будет производиться каждый раз, когда вы будете выполнять команду git fetch.
3. Псевдонимы Git
В файле конфигурации Git вы можете добавить псевдонимы для некоторых длинных команд, которые вы используете регулярно. Например, для коммитов, тайников и т.д.
Предположим, что вы хотите создать псевдоним для добавления пустого коммита. В таком случае вам нужно добавить в файл конфигурации следующее:
[alias]
empty = "git commit --allow-empty"
или ввести в терминале следующую команду:
git config --global alias.empty "git commit --allow-empty"
И вы сможете использовать команду вот таким образом:
git empty "Empty commit"
Кроме того, вы можете добавить псевдонимы для команд, которые используются вне Git. Например, вот так можно создать псевдоним, который удаляет локальные ветки, которые перешли в разряд удаленных:
[alias]
delete-local-merged = "!git fetch && git branch --merged | egrep -v 'master' | xargs git branch -d"
Восклицательный знак «!» указывает на то, что Git должен запустить эту команду как команду оболочки, а не как команду git *.
Команду git fetch мы используем для псевдонима. После чего мы получаем объединенные ветки, передаем их команде egrep в качестве входных данных, фильтруем ветку main и удаляем ветки.
4. Настройка ветки по умолчанию
Когда вы инициализируете репозитрий (git init), веткой по умолчанию является ветка master. На сегодняшний день многие разработчики предпочитают, чтобы на этом месте была ветка main или какая-то другая.
При этом вам не нужно создавать новую ветку с именем main, удалять ветку master и использовать main как ветку по умолчанию. Это слишком долго. В файле конфигурации вы можете записать следующее и при инициализации Git установить, таким образом, ветку по умолчанию.
[init]
defaultBranch = main (или любое другое имя, которое вы хотите)
В таком случае команда git init сделает так, что веткой по умолчанию будет ветка main.
5. Демонстрация краткого статуса по умолчанию
По умолчанию команда git status демонстрирует вам подробно описанные изменения в вашем проекте. А именно вот в таком формате:
On branch [branch name]
Your branch is up to date with ...
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git restore <file>..." to discard changes in the working directory)
modified: ...
Untracked files:
(use "git add <file>..." to include in what will be committed)
...
no changes added to commit (use "git add" and/or "git commit -a")
Это довольно полезно, но иногда вам требуется лишь краткий отчет о состоянии репозитория. В этом вам поможет флаг --short, который необходимо добавить к команде git status. Результат выполнения такой команды будет следующий:
M [file]
?? [file]
«M» означает «modified», то есть «измененный», а «??» - неотслеживаемый. Мы можем сделать еще лучше, установив такой формат вывода как вывод по умолчанию. Для этого необходимо установить следующую конфигурацию:
[status]
short = true
Заключение
В этом списке мы рассмотрели пять способов, как можно оптимизировать процесс разработки за счет настройки стандартной работы Git, и это далеко не полный список.