Простой в использовании инструмент командной строки GitHub: «gh»!

 

Если вы, как и я, пользуетесь GitHub и предпочитаете командную строку, чтобы все делать без каких-либо сложностей с графическим интерфейсом, вы могли заметить, что GitHub начал использовать свой не очень новый инструмент под названием «gh». Я решил попробовать, потому что он выглядел многообещающе. И лично мне он очень понравился — настолько, что я захотел написать об этом статью!

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

«GH» означает » G it H ub». Отсюда происходит и название инструмента, поэтому его нельзя спутать с самим Git’ом. Чтобы объяснить, что он делает в общем, вы можете создавать, форкать, удалять, просматривать репозитории; создавать запросы на исправление; и многое другое. Если вы не можете найти нужную функцию, но не хотите выходить из терминала, он также предоставляет текстовый браузер для просмотра страниц в GitHub. «CLI» расшифровывается как «C ommand L ine I nterface». Терминал (или, в Windows, Командная строка) является одним из них. Если к названию приложения добавлено «CLI» («Git CLI» для этой статьи), это означает, что приложение работает только через терминал. А «Git CLI» в данном контексте — это, ну, тот Git, который мы знаем. Например, команда, с помощью которой мы делаем коммиты или ребазы.GUI означает » G raphical U ser I nterface», и это интерфейс, по которому мы «перемещаемся». Лучше сказать, что среда рабочего стола в целом — это графический интерфейс. API-ключ» — это своего рода секретная строка/файл, который вы используете для аутентификации в сервисах. Имейте в виду, что при аутентификации с его помощью обходится двухфакторная аутентификация и так далее. Поэтому храните их в безопасном месте, недоступном для других средств.

Прежде всего, что это за инструмент? Как он обрабатывает операции, которые мы выполняем через Git CLI?

«gh» можно рассматривать как обертку с открытым исходным кодом (Source Code), использующую сам Git CLI и API GitHub для выполнения задач. На самом деле, вы даже можете передавать параметры используемым Git-командам! Я расскажу об этом позже.

Установка и настройка

Имейте в виду, что установка выполняется с помощью Termux. Но процедура должна быть практически такой же, как и на дистрибутиве, основанном на Debian — например, Ubuntu имеет его в своих официальных репозиториях. Для Windows, ну, вам нужен либо CygWin, либо WSL, я полагаю. ¯_(ツ)_/¯ # Сначала установим инструмент. Также устанавливаем Git, так как он является бэкендом.
# для gh.
$ pkg install git gh -y

# Затем, перед началом работы, нам нужно пройти аутентификацию. Это позволит сохранить
# новый ключ API в базе данных инструмента, так что вам не нужно будет проходить аутентификацию
# снова. Если вы уже установили GITHUB_TOKEN, это не сработает, поэтому сначала снимите его.
# его сначала.:)
$ gh auth loginНу, прежде чем мы продолжим, я должен отметить несколько вещей.

  • Во-первых, не выбирайте «GitHub Enterprise Server» если у вас нет собственного хостинга GitHub.
  • Во-вторых, используйте SSH вместо HTTPS, если в вашем аккаунте GitHub добавлен открытый ключ. Если вы потеряете API-ключ, вы, по крайней мере, не потеряете SSH-ключ, так что это также может быть хорошим запасным вариантом.
  • В-третьих, входите в систему через браузер только если у вас нет под рукой ключа API! Действительно, нет смысла заводить еще один ключ, когда у вас уже есть один.

После того, как вы все настроили, давайте расскажем об этом Git CLI.$ gh auth setup-gitЭто создаст необходимые конфигурации Git CLI на случай, если ваши рефлексы ворвутся и заставят вас использовать Git вместо GH.

Несколько основных команд

Теперь, когда вы настроили GH, позвольте мне научить вас нескольким основным командам на основе истории. Прежде всего, допустим, вы хотите создать запрос на притяжение к моему локальному репозиторию manifests. Для начала вам нужно его форкнуть.$ gh repo fork windowz414/platform_manifest
! windowz414/platform_manifest уже существует
? Вы хотите клонировать форк? Да
Клонирование в ‘platform_manifest’…
remote: Перечисление объектов: 136, готово.
remote: Подсчет o