Как разработчик, вы вероятно ежедневно используете Git CLI (интерфейс командной строки). Однако повторное написание одних и тех же команд может быть трудоемким, особенно если команды длинные. В этом случае приходят на помощь псевдонимы Git.

В этой статье вы узнаете, как упростить ваши команды Git с помощью псевдонимов.

Содержание

Предварительные требования

  • Знание Git.

  • Установленный Git Bash (опционально, но рекомендуется для пользователей Windows).

  • IDE, такой как VS Code (также опционально).

Что такое псевдонимы Git?

Псевдонимы Git – это пользовательские сокращения для существующих команд Git, делающие общие задачи быстрее и проще. Они позволяют вам определять свои собственные команды, позволяя настраивать сокращения именно так, как вам нужно.

У вас есть два основных варианта добавления/создания псевдонимов Git в вашу конфигурацию Git: использование файла конфигурации Git или добавление их непосредственно через CLI (терминал/командную строку).

Этот вариант включает открытие вашего глобального файла конфигурации Git и добавление ваших псевдонимов Git в конец файла.

Как установить ваш предпочтительный редактор Git

Установите свой текстовый редактор по умолчанию для Git, например, я использую VS Code для редактирования файлов конфигурации Git, но вы можете использовать любой текстовый редактор/редактор кода, который предпочитаете.

Запустите эту команду, чтобы установить Notepad в качестве предпочтительного редактора в Windows (CMD/PowerShell):

git config --global core.editor "notepad"

Запустите эту команду, чтобы установить VS Code в качестве предпочтительного редактора в Windows и MacOS/Linux:

git config --global core.editor "code --wait"

Чтобы установить другой редактор по умолчанию, ищите онлайн “Установить {редактор} в качестве редактора Git по умолчанию” и замените {редактор} на приложение, которое вы предпочитаете.

Как открыть файл конфигурации Git

Откройте терминал на ваш выбор и введите следующую команду. Это откроет глобальный файл конфигурации Git (git config —global) в режиме редактирования (-e).

git config --global -e

Вы можете открыть файл конфигурации Git непосредственно из следующих мест:

Mac Os: Домашняя директория → показать скрытые (Cmd + Shift + H) → .gitconfig

Windows: C:\Пользователи\ВашеИмяПользователя\ → затем показать скрытые файлы (в меню “Вид”) → и найти .gitconfig

Linux: Домашняя директория → показать скрытые (Ctrl + H) → .gitconfig

Как добавить псевдоним Git через ваш файл конфигурации

Если вы добавляете псевдонимы Git в первый раз, откройте ваш файл .gitconfig, добавьте [alias] в конце и затем перечислите ваши сокращения ниже. Это сообщает Git, что это псевдонимы. Добавьте свой предпочтительный псевдоним (сокращенную команду, которую вы хотите выполнить).

Формат псевдонима Git: <псевдоним> = <команда>, поэтому у нас:

co = checkout
cob = checkout -b

Объяснение приведенных примеров:

co = checkout это отображает команду git checkout на более короткую команду git co. Затем вы вызываете git co feature/123 в вашем терминале.

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

Примечание: Любые передаваемые параметры команде будут применяться только к окончательной вызываемой команде в псевдониме.

Больше псевдонимов можно добавить таким образом, отображая ярлыки на существующие команды git. Сохранение и закрытие файла сделает псевдонимы доступными в вашем терминале.

Как добавить псевдонимы в командной строке

Если вы хотите более удобный способ добавления псевдонимов Git, вы можете добавить их непосредственно из терминала/командной строки.

Используя приведенные выше примеры, мы можем добавить их непосредственно следующим образом:

Формат команды: git config --global alias.{псевдоним} "{оригинальная команда}":

git config --global alias.co "checkout"
#или
git config --global alias.cob "checkout -b"

Это настолько просто!

Как создать пользовательские команды для более сложных ярлыков

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

Давайте возьмем следующий пример, команду, которую я часто использую!

new-work = !git checkout main && git pull && git cob

Этот псевдоним объединяет несколько команд Git в одну команду оболочки. Символ ! говорит Git’у обрабатывать его как команду оболочки, а не как стандартную команду Git.

Без ! Git рассматривает псевдоним как команду Git (например, checkout становится git checkout). С ! Git знает, что нужно запускать его как команду оболочки без добавления git спереди.

Сцепляя эти команды, мы можем написать более полезные псевдонимы. Приведенный выше псевдоним будет:

  • Сначала проверить ветку main.

  • Используя оператор &&, это означает, что другие команды будут запущены только в случае успешного выполнения предыдущей.

  • Во-вторых, он загрузит изменения из ветки main.

  • Наконец, создаст новую ветку из ветки main с использованием другого псевдонима git cob.

Затем финальная команда может принимать параметры (как и оригинальная команда Git), поэтому ее можно использовать так:

git new-work 'feature/new-work-from-main'

Как использовать параметры во всех командах.

До сих пор мы могли передавать параметры только в конечную команду git в нашем псевдониме. Однако что, если мы хотим передавать параметры некоторым, если не всем командам внутри псевдонима? Мы можем добиться этого, используя оболочечную функцию.

Возьмем следующий пример:

new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"

В приведенном выше примере мы используем оболочечную функцию, обрабатывающую входные параметры.

Объяснение:

  1. !f():

    • Знак ! сообщает Git интерпретировать псевдоним как команду оболочки, а не как стандартную команду Git.

    • f() определяет оболочечную функцию f, которая позволит нам выполнять несколько команд последовательно.

  2. Все, что находится внутри { }, будет выполнено в пределах функции f().

  3. git checkout \”$1”'\: Запустит параметризованную команду Git, где $1 экранирован и будет заменен на 1-й переданный параметр в псевдоним. Экранированные последовательности \" вокруг $1 позволяют использовать имена веток с пробелами.

  4. && – логический оператор, который гарантирует, что каждая команда выполняется только в случае успешного завершения предыдущей. Если git checkout "$1" завершится неудачно, последующие команды не будут выполнены.

  5. git checkout -b \”$2”\ : Создает новую ветку с именем второго параметра, как и ранее.

  6. ;: Обозначает конец функции f();

  7. f: Итоговый f вызывает функцию псевдонима немедленно, что означает, что при вызове псевдонима он сначала объявляет функцию, а затем сразу ее вызывает.

Использование:

git new-work development task/feat-123

Другие полезные псевдонимы

[alias]
     co = checkout
    cob = checkout -b
    s = status
    tidy-up = !git checkout main && git branch | grep -v "main" | xargs git branch -D
    latest = !git checkout main && git pull
    new-work = "!f() { git checkout \"$1\" && git pull && git checkout -b \"$2\"; }; f"
    done = !git push -u origin HEAD
    save = !git add -A && git commit
    saveM = !git add -A && git commit -m
    br = branch --format='%(HEAD) %(color:yellow)%(refname:short)%(color:reset) - %(contents:subject) %(color:green)(%(committerdate:relative)) [%(authorname)]' --sort=-committerdate

Сводка

co: Переключиться на указанную ветку → git co task/feat-123

cob: Создать новую ветку из текущей ветки → git cob feature/123

s: Вызвать git status для просмотра состояния текущей ветки в git → git s

tidy-up: Удаляет все локальные ветки, кроме maingit tidy-up

latest: Получить последние изменения из удаленной ветки maingit latest

new-work: Создать новую ветку (2-й параметр) из ветки 1-го параметра → git new-work main feat/123

git done: Отправить текущую ветку в удаленный репозиторий (origin) и установить её как основную. Это может быть полезно, когда вы пытаетесь отправить свой первый коммит и получаете ошибку:
fatal: The current branch has no upstream branch. To push the current branch and set the remote as upstream, use git push --set-upstream origin

save: Просто добавит все измененные файлы, закоммитит их, откроет ваш редактор Git по умолчанию и запросит сообщение к коммиту → git save

savem: Будет выполнять то же, что и выше, но вместо открытия вашего редактора вы можете передать встроенное сообщение коммита → git savem ‘Task123: add index.html

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

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

Как всегда, если вы хотите поболтать об этом или узнать о будущих статьях, вы можете подписаться на меня в Twitter.