Как использовать псевдонимы Git: 10 наглядных примеров
Программирование

Как использовать псевдонимы Git: 10 наглядных примеров

Упростите рабочий процесс в Git с помощью псевдонимов

Git – это популярный, мощный инструмент и, возможно, самая успешная система контроля версий из когда-либо существовавших. Мощь Git’а очевидна из его набора команд. В настоящее время он состоит примерно из 150 команд, от распространенной git-status до малоизвестной git-get-tar-commit-id. Каждая команда поддерживает свой собственный набор опций, поэтому запомнить их нужно ошеломляющее количество

К счастью, у Git’а есть возможность все упростить. Псевдоним Git может служить ярлыком для любой подкоманды с любым набором опций. С внешними командами вы можете использовать еще более мощные вызовы. Вот 10 самых полезных псевдонимов, которые вы можете создать

Как задать псевдоним

Установить псевдоним очень просто, если следовать следующей схеме:

git config --global alias.co'checkout'

Опция –global устанавливает псевдоним для всех случаев использования Git текущим пользователем. Чтобы псевдоним применялся ко всем пользователям системы, используйте –system. Чтобы добавить псевдоним, специфичный для текущего репозитория, используйте –local

Если вы знаете, где находится файл конфигурации, вы можете редактировать его напрямую. Системная конфигурация находится в глобальном месте, обычно /usr/local/etc/gitconfig. Конфигурация для конкретного пользователя будет находиться в файле в вашем домашнем каталоге, например ~/.gitconfig. Локальная конфигурация существует в самом репозитории, в файле .git/config

См. также: Как установить и настроить Git в Linux

1. Псевдоним для быстрого переключения ветвей

В зависимости от вашего рабочего процесса, вы можете переключать ветви много раз в течение каждой рабочей сессии. Чтобы сэкономить немного усилий и потренироваться с простейшим видом псевдонима, попробуйте сделать следующее:

alias.co'checkout'

Набрав git co feature1 , вы переключитесь на ветку feature1. Псевдоним сокращает имя подкоманды, которая продолжает работать с дополнительными аргументами

2. Просмотр сокращенного состояния

По умолчанию команда git status выводит подробную информацию. Он подробно объясняет состояние, содержа полезную информацию для тех, кто не знаком с Git. Однако если вы хотите сэкономить немного места и уже знакомы с терминологией Git, вы можете создать псевдоним для более короткой версии:

alias.st status -sb

Это всего лишь небольшая вариация на тему git-status , но опция -s позволяет получить короткий вывод, который делает все намного более кратким. По умолчанию git-status будет выглядеть примерно так:

И вместо этого выдает следующее:

Опция -b показывает информацию о ветке и отслеживании, которую -s в противном случае подавил бы

3. Показать сводный журнал

Git предлагает множество способов просмотра истории проекта с помощью команды git-log. Он может фильтровать коммиты, о которых сообщает, и отображать множество различных данных, связанных с каждым коммитом. Иногда, однако, вам нужен максимально компактный журнал. Опция –oneline обеспечивает это, но гораздо быстрее сделать её псевдонимом, учитывая, что вы будете использовать её довольно часто:

alias.ll'log --oneline'

В выводе представлено по одному коммиту в строке, с заголовком сообщения о коммите и сокращенным хэшем. Это выглядит следующим образом:

4. Отмена последнего изменения

Команда git reset очень ценна, но она не самая простая для понимания. Иногда нужно просто отменить последнее изменение, отмотав назад последний коммит. Опция –soft гарантирует, что Git удалит только последний коммит, не изменяя ничего в локальных файлах вашего рабочего дерева. HEAD~1 – это просто способ сослаться на коммит, стоящий перед HEAD

alias.undo'reset --soft HEAD~1'

5. Журнал последней фиксации

Если вы поднимаете проект, начатый накануне, может быть полезно изучить последний коммит. С помощью псевдонима git-log вы можете получить быстрый и подробный отчет о последнем коммите:

alias.last'log -1 HEAD --stat'

Опция -1 HEAD просто запрашивает самый последний коммит, а –stat перечисляет файлы, которые затронул коммит, с указанием количества вставленных и удаленных строк для каждого

6. Простая одномоментная фиксация

Вероятно, вам довольно часто приходится добавлять файлы и фиксировать их на следующем шаге. Если только ваш рабочий процесс не является более сложным, вы можете упростить этот процесс с помощью псевдонима:

alias.ac'!git add -A && git commit'

Отдельные компоненты не требуют особых пояснений, кроме того, что опция -A , передаваемая в git-add , автоматически обновляет индекс, чтобы все файлы соответствовали рабочей копии. Она предназначена для удаления, изменения и создания файлов

Интересным моментом в этом псевдониме является то, что он объединяет две команды. Для этого используется символ ! в качестве первого символа псевдонима. Это сообщает Git’у, что следующая команда является внешней командой оболочки, а не подкомандой

7. Причудливое форматирование ветвей

Еще одна команда с большой гибкостью, git-branch может форматировать свой вывод множеством способов, помимо разреженного по умолчанию

alias.br'branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative))  %(authorname) ' --sort=-committerdate'

Изучите формат от начала до конца. Обратите внимание, что он включает множество специальных полей. %(HEAD) добавляет звездочку рядом с текущей веткой

Псевдонимы – отличный способ поэкспериментировать с форматированием команд типа git-branch. Со временем вы выработаете свои предпочтения, поэтому следить за тем, какие варианты дают наиболее предпочтительный результат, просто необходимо

8. Суммирование изменений по вкладчикам

Вариант git log, git-shortlog группирует отображаемые коммиты по авторам. Это идеально подходит для заметок о выпуске или просто для отслеживания того, кто что сделал за последнее время

Несколько опций позволяют создать очень удобное универсальное резюме автора, идеально подходящее для регулярного использования через псевдоним. Опция -e показывает адреса электронной почты в дополнение к именам. Опция –summary просто выводит общее количество, а не тему каждого коммита. А –numbered упорядочивает итоговый результат по общему количеству вкладов. Вы можете использовать этот псевдоним:

alias.contrib'shortlog -e --summary --numbered'

Чтобы получить следующий вывод:

9. Список ветвей, отсортированных по последнему изменению

Теперь еще немного работы с ветвями, на этот раз с помощью подкоманды более низкого уровня. Этот сложный псевдоним – ещё один пример внешней команды— в данном случае конвейера. Сначала команда git-for-each-ref перебирает все известные ветви. Он делает это в порядке authordate и форматирует вывод, чтобы показать эту дату вместе с хэшем коммита. Наконец, он использует sed для удаления refs/heads/ из имени каждой ветви

alias.b'!git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's-refs/heads/--''

См. также: Эти примеры Sed сделают вас опытным пользователем Linux

10. Псевдоним, который покажет все псевдонимы

При такой поддержке псевдонимов удивительно, что Git не предлагает простого способа просмотра всех установленных вами псевдонимов. Однако не волнуйтесь, это можно исправить с помощью псевдонимов! Команда git config выводит список всех текущих конфигураций. Вы можете фильтровать значения с помощью опции –get-regexp , поэтому следующий псевдоним дает вам полезную команду git alias :

alias.alias'git config --get-regexp ^alias.'

Сэкономьте время и разочарование с помощью псевдонимов Git

Псевдонимы Git экономят ваше время, избавляя от необходимости набирать длинные и сложные команды. В Git’е огромное количество подкоманд, но псевдонимы легко использовать повторно и поддерживать. Вы даже можете включить псевдонимы в свой проект через локальную конфигурацию, что позволит вам обмениваться ярлыками и стандартными практиками

Как и псевдонимы Linux, псевдонимы Git позволяют набирать меньше, а делать больше. Попробуйте поэкспериментировать с приведенными выше псевдонимами и изучите полный набор команд Git, чтобы увидеть богатство доступных функций

Об авторе

Алексей Белоусов

Привет, меня зовут Филипп. Я фрилансер энтузиаст . В свободное время занимаюсь переводом статей и пишу о потребительских технологиях для широкого круга изданий , не переставая питать большую страсть ко всему мобильному =)

Комментировать

Оставить комментарий