Как улучшить свои навыки работы с Git с помощью GitHub CLI

от автора

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

Разработчики стремятся использовать инструменты, которые кажутся им наиболее удобными. В GitHub мы понимаем, что разработчики хотят работать с GitHub по-разному. Это включает использование GitHub через веб-интерфейс или облегчённый веб-редактор GitHub.dev. Разработчики могут получить полноценный редактор кода в интернете с помощью Codespaces, интеграции GitHub с различными редакторами, такими как VS Code или JetBrains, и даже использовать GitHub Desktop или GitHub на мобильных устройствах через GitHub Mobile. А знаете ли вы, что GitHub можно также использовать напрямую из терминала?

GitHub и терминал

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

GitHub CLI переносит весь функционал GitHub в ваш терминал, что позволяет вам иметь полный рабочий процесс GitHub, доступный из командной строки. Больше никакого переключения контекста, что помогает сохранять сосредоточенность: вместо того, чтобы работать с Git в командной строке и переключаться в браузер для выполнения задач, связанных с GitHub (таких как создание задач, обзор пул-реквестов или редактирование репозиториев), вы можете выполнять всё это прямо из терминала. Это значит, что у вас будет больше времени на написание кода.

Если вы уже знакомы с GitHub и у вас установлена операционная система Windows, Mac или Linux, то это руководство для вас. Рассмотрим начало работу с GitHub CLI и несколько полезных команд для удобного управления вашими проектами.

Установка GitHub CLI

Чтобы начать, скачайте и установите GitHub CLI. Следуйте инструкциям для загрузки версии для Windows, Mac или Linux из репозитория GitHub CLI или из открытой документации. После установки GitHub CLI откройте терминал и проверьте, установлен ли CLI, выполнив команду gh. Если вы используете Windows, то при корректной установке GitHub CLI вы увидите что-то подобное:

Если хотите узнать, установлена ли у вас самая последняя версия GitHub CLI, выполните команду gh --version, чтобы посмотреть текущую версию.

Terminal showing: $ gh --version gh version 2.53.0 (2024-07-17) https://github.com/cli/cli/releases/tag/v2.53.0

После установки CLI необходимо выполнить аутентификацию в GitHub для продолжения работы. Для этого выполните команду gh auth login. Следуйте шагам, описанным в документации GitHub CLI, чтобы убедиться, что аутентификация выполнена с использованием правильных учётных данных.

8 самых полезных команд GitHub CLI

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

Учтите, что я работаю на машине с Windows, поэтому приведённые примеры основаны на использовании Windows PowerShell.

1. Создание и клонирование репозиториев в локальной среде

При работе с новым проектом вам необходимо создать место для его размещения. Это можно сделать всего за несколько шагов с помощью GitHub CLI. Чтобы создать репозиторий, сначала перейдите в каталог, где вы хотите разместить ваш новый проект, и выполните команду gh repo create:

Terminal showing: $ gh repo create my-awesome-project --private Created repository mishmanners/my-awesome-project on GitHub

Мы можем затем клонировать этот новый пустой репозиторий:

Terminal showing: $ cd $ gh release create ? Choose a tag - Create a Tag ? Tag name 2.0 ? Title (optional) 2.0 Food Translations ? Title (optional) Food Translations ? Release notes Write my own using generated notes as template A notepad opens where we can change the text for the release. Here we are adding some text that says "MAJOR CHANGE: - Added support for multiple words to be translated simultaneously. - Added Playwright tests to support future builds ? Release notes Write own using generated notes as template ? Is this a pre-release N ? Submit? Publish release https://github.com/mishmanners/mish-friendly-food/release/tag/2.0

Вы также можете клонировать любой репозиторий, используя команду gh repo clone <OWNER/REPO>. Например, выполните gh repo clone cli/cli, чтобы клонировать репозиторий GitHub CLI. Да, всё верно — GitHub CLI является open-source проектом.

Terminal showing: $ gh repo clone cli/cli Cloning into 'cli'... There are four lines of "remote" status, then two new lines showing receiving and resolving objects. This shows the repository has been successfully cloned to the local environment.

Использование команды gh repo clone вместо git clone упрощает аутентификацию и конфигурацию Git, снижая необходимость в ручных настройках и, таким образом, ускоряя рабочий процесс.

Другие полезные команды для работы с репозиториями:

  • gh repo list — показывает список всех репозиториев, принадлежащих вашему пользователю.

  • gh repo edit <OWNER/REPO>редактирование настроек конкретного репозитория.

  • gh repo delete <OWNER/REPO>удаление определённого репозитория.

Существует множество других полезных команд для работы с репозиториями. Полный список, включая доступные флаги, вы можете найти в документации GitHub CLI.

2. Быстрое отображение, создание и редактирование задач (issues)

Теперь, когда у вас есть новый репозиторий в вашей среде разработки, вы можете использовать терминал для работы над проектом. Начнём с задач (issues). Задачи — это своего рода трекеры для вашего проекта. Они могут быть связаны с созданием новой фичи или исправлением ошибок.

Просматривая список задач, вы можете выбрать ту, над которой хотите работать, или получить общий обзор текущих задач, назначенных для проекта. Используйте команду gh issue list, чтобы отобразить список ваших открытых задач:

Terminal showing: $ gh issue list Showing 30 of 624 open issues in cli/cli We are showing the first 9 in the list

Чтобы посмотреть этот список, убедитесь, что ваш терминал находится в каталоге репозитория, над которым вы хотите работать. Например:

  • .\cli в приведённой выше демонстрации или

  • .\my-awesome-project для нового репозитория, который мы создали в первом примере.

Вы можете создавать задачи прямо из командной строки, используя команду gh issue create и следуя подсказкам для открытия новой задачи. Затем используйте gh issue list, чтобы увидеть список задач для данного репозитория, или gh issue view, чтобы просмотреть конкретную задачу:

Terminal showing: $ cd <location in local environment> $ gh issue create Creating issue in mishmanners/my-awesome-project ? Title EPIC TRACKING ISSUE for this awesome project ? Body <received> ? What's next? Submit https://github.com/mishmanners/my-awesome-project $ gh issue list Showing 1 of 1 open issues $ gh issue view 1 open # 1 EPIC TRACKING ISSUE for this awesome project opened 1 minute ago

Вы также можете редактировать задачи, используя команду gh issue edit, или попробовать запустить блокнот (Notepad) во время создания задачи, чтобы добавить описание.

Ещё одна полезная команда — gh issue status, которая показывает текущий статус всех открытых задач в репозитории и их отношение к вам:

Terminal showing: $ cd <location in local environment> $ gh issue status Relevant issues in mishmanners/mish-friendly-food The terminal screen shows issues assigned to me, issues I'm mentioned in, and issues opened by me.

Существует множество других полезных команд для работы с задачами. Полный список вы можете найти в документации GitHub CLI.

3. Переключение на ветки, обзор и слияние пулл-реквестов

Вместо того чтобы открывать GitHub.com и работать с пулл-реквестами через веб-интерфейс, мы можем выполнять всю эту работу через терминал. Для работы с пулл-реквестами есть несколько полезных команд. После того как вы перейдёте в каталог своего репозитория, выполните команду gh pr list, чтобы посмотреть список открытых пулл-реквестов. Вы увидите список всех открытых пулл-реквестов в репозитории, включая черновики:

Terminal showing: $ gh pr list Showing 15 of 15 open pull requests We are showing you the top nine PRs, where some are in green and others are in gray.

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

Вы также можете создать пулл-реквест прямо из терминала. Для этого можно использовать комбинацию команд Git и GitHub. Например, команда git checkout переключает вас на нужную ветку репозитория. Затем используйте команду gh pr create, чтобы создать пулл-реквест. Следуя подсказкам в терминале, вы сможете открыть пулл-реквест.

Вот пример работы со списком пулл-реквестов: используйте git checkout, чтобы убедиться, что вы находитесь в нужной ветке с изменениями, которые хотите объединить. Затем выполните команду gh pr create, чтобы создать пулл-реквест. Следуя подсказкам, вы можете открыть блокнот (Notepad) для добавления описания пулл-реквеста. Поскольку я ещё не тестировал эти изменения, я создаю данный пулл-реквест как черновик. Наконец, я могу использовать gh pr list, чтобы увидеть список пулл-реквестов в репозитории, включая только что созданный черновой пулл-реквест:

Terminal showing: $ gh pr list Showing 1 of 1 open pull request in mishmanners/mish-friendly-food (the open pull request is show on a few lines here) $ git checkout translations Already on 'translations' $ gh pr create Creating pull request for translations into main in mishmanners/mish-friendly-food ? Title (Translations using GitHub Copilot) ? Body (press e to launch notepad - here we launch a note pad and make changes to the comments in the notepad. Save the notepad and it goes back to the terminal) ? What's next? Submit https://github.com/mishmanners/mish-friendly-food/pull/112 $ gh pr list We can see the new pull request made here in this list.

Вот ещё несколько полезных команд для работы с пулл-реквестами:

  • gh pr status — посмотреть статус пулл-реквестов и их отношение к вам.

  • gh pr checkoutпереключиться на определённую ветку и посмотреть информацию о ней. Это мощная команда: как рецензент, вы можете быстро загрузить ветку и протестировать изменения локально перед перед одобрением или слиянием пулл-реквеста.

  • gh pr mergeвыполнить слияние пулл-реквеста.

Полный список команд для работы с пулл-реквестами, включая доступные флаги, вы найдёте в документации GitHub CLI.

4. Создание и просмотр релизов для вашего проекта

При работе над проектом может быть полезно управлять его релизами. Релиз — это программный пакет, который включает примечания к релизу и бинарные файлы, доступные для использования другими. Вы можете создать новый релиз с помощью команды gh release create и следовать подсказкам для создания релиза:

"Terminal

Используйте команду gh release list, чтобы посмотреть список релизов конкретного проекта, и gh release view, чтобы просмотреть детали определённого релиза.

5. Мониторинг рабочих процессов GitHub Actions

Ни один проект не обходится без GitHub Actions, и теперь вы можете управлять и запускать свои GitHub Actions из командной строки. GitHub Actions — этоплатформа автоматизации, которая позволяет автоматизировать проект от идеи до выпуска. Вы можете собрать, протестировать и развернуть ваш проект прямо из GitHub с использованием GitHub Actions.

Если вы путаетесь в терминах «действие» (action) и «рабочий процесс» (workflow), ознакомьтесь с нашим руководством по различиям между GitHub Actions, actions и workflows.

Используйте команду gh workflow list, чтобы просмотреть список всех доступных рабочих процессов.

Terminal showing: $ gh workflow list Showing the first eight workflows here.

Этот список показывает рабочие процессы, настроенные владельцем репозитория. У каждого проекта будут свои типы и количество рабочих процессов. После того как вы увидите полный список доступных рабочих процессов в репозитории, используйте команду gh workflow run, чтобы выбрать и запустить конкретный процесс.

Например, если вы хотите запустить действие «code scanning», приведённое выше, вы можете использовать gh workflow run 1208059, чтобы запустить этот процесс. Для выполнения этой команды вам понадобятся административные права на репозиторий.

Вот пример работы с репозиторием, к которому у меня есть доступ: как я могу запустить определённый процесс и увидеть его выполненные запуски.

Terminal showing:<br /> $ gh workflow list<br /> There are three workflows show<br /> $ gh workflow run 387697565<br /> The workflow runs<br /> $ gh run list --workflow=test.yml<br /> A list of the workflows runs for the test workflow are shown.

6. Создание и редактирование меток (labels)

Метки играют важную роль в эффективном управлении проектами. Они помогают группировать задачи (issues) и сортировать их с помощью цветовой кодировки, что облегчает их распределение и приоритизацию. Вы можете увидеть список всех меток репозитория, выполнив команду gh label list. Затем используйте gh label create, чтобы добавить новую метку, или gh label edit, чтобы отредактировать существующую метку:

Terminal showing: $ cd <directory for local environment> $ gh label list Showing 9 of 9 labels gh label create "needs design" Label "needs design" created in mishmanners/my-awesome-project $ gh label list Showing 10 of 10 labels (shows the new label created) $ gh label edit "needs design" --description "This issue needs design work before it can be completed" $ gh label list Showing 10 of 10 labels (shows the edited label description)

7. Проверка вашего статуса в GitHub

Одна из самых полезных команд — это команда для проверки статуса вашего аккаунта в GitHub. Выполните gh status, чтобы получить информацию о вашем статусе. Это включает:

  • назначенные вам задачи (issues),

  • пулл-реквесты, которые ожидают вашего ревью,

  • другую активность в репозиториях.

Terminal showing: $ gh status A list of my GitHub status is shown including assigned issues, assigned pull requests, review requests, repository activity, and mentions.

8. Добавление новых функций в GitHub CLI с помощью расширений

Мы уже рассмотрели некоторые полезные команды для работы с GitHub. Но как поступить, если вам нужно сделать что-то, что здесь не упомянуто? Поскольку GitHub CLI является проектом с открытым исходным кодом, многие разработчики — как из GitHub, так и из сообщества — создают расширения для GitHub CLI. Эти расширения добавляют дополнительные возможности в вашу командную строку.

Вы можете просмотреть все доступные расширения для GitHub CLI через терминал, выполнив команду gh ext browse, и увидеть краткое описание каждого расширения и его функциональности.

Terminal showing: $ gh ext browse Browsing 475 gh extensions. A bunch of GitHub CLI Extensions are shown on the left hand side, with their README descriptions on the right.

Если есть расширение, которое вы хотите установить, используйте команду gh ext install <OWNER/REPO>.

Бонус. Нужна помощь?
Что делать, если вы не можете вспомнить какую-то команду? Используйте gh help, чтобы просмотреть список полезных команд.

Terminal showing: $ gh repo --help A list of useful commands pertaining to GitHub repositories are shown here. This list here shows usage, general commands, GitHub Actions Commands, extension commands, flags, and examples on how to the use the command.

Заключение

Теперь, когда мы рассмотрели, как использовать GitHub CLI в терминале, начните практиковать эти команды. Если вам нравится работать в терминале, это поможет сократить смену контекста и позволит проводить больше времени там, где вам комфортно — в командной строке.

Но что делать, если вы застряли в терминале? Да, вы можете использовать gh help, чтобы получить полезные подсказки о том, что делать дальше, но это часто оказывается недостаточным или не совсем тем, что вы ищете. Если вы столкнулись с этим, GitHub готов помочь. Следующая статья будет посвящена тому, как использовать GitHub Copilot в CLI, чтобы выйти из затруднительной ситуации, если вы сталкиваетесь с ошибками или не можете вспомнить определённую команду.


Больше актуальных навыков по разработке приложений вы можете получить в рамках практических онлайн-курсов от экспертов отрасли.

Также приглашаем начинающих разработчиков на открытый урок, посвященный основам многопоточности в Java. Подробности и запись — по ссылке. Полный список всех открытых уроков по разным ИТ-направлениям можно посмотреть в календаре.


ссылка на оригинал статьи https://habr.com/ru/articles/867782/