12k
All articles

Как создавать Pull Request'ы из вашего терминала

Создание pull request'ов из терминала через GitHub CLI, управление ветками, разрешение конфликтов и автоматизация PR-задач с помощью shell-скриптов.

OpenReplay Team
OpenReplay Team
Как создавать Pull Request'ы из вашего терминала

Pull request’ы (PR) являются фундаментальной частью совместной разработки на GitHub, обеспечивая проверку кода и обсуждение перед слиянием изменений. Это руководство объясняет, как эффективно создавать и управлять PR с использованием терминала, в основном используя GitHub CLI (gh).

Ключевые моменты

  • Научитесь использовать GitHub CLI для управления PR
  • Освойте рабочие процессы создания PR через терминал
  • Следуйте лучшим практикам создания PR
  • Решайте распространенные проблемы
  • Внедряйте расширенные функции PR

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

Перед началом убедитесь, что у вас есть:

Настройка GitHub CLI

Установка

Выберите вашу операционную систему:

macOS

# Используя Homebrew
brew install gh

# Используя MacPorts
sudo port install gh

Linux

# Debian/Ubuntu
curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | sudo dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg
echo ""deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main"" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null
sudo apt update
sudo apt install gh

# Fedora
sudo dnf install gh

# Arch Linux
sudo pacman -S github-cli

Windows

# Используя Scoop
scoop install gh

# Используя Winget
winget install --id GitHub.cli

Аутентификация

После установки пройдите аутентификацию в GitHub:

gh auth login

Следуйте интерактивным подсказкам для завершения аутентификации. Вы можете выбрать между протоколами HTTPS или SSH.

Создание Pull Request’а

1. Подготовьте вашу ветку

# Обновите локальную ветку main
git checkout main
git pull origin main

# Создайте и перейдите на новую ветку функционала
git checkout -b feature/your-feature-name

2. Внесите и зафиксируйте изменения

# Добавьте все изменения в индекс
git add .

# Создайте коммит с описательным сообщением
git commit -m ""feat: implement new feature

- Added new functionality
- Updated documentation
- Fixed related issues""

3. Отправьте изменения

# Отправьте вашу ветку в GitHub
git push -u origin feature/your-feature-name

4. Создайте Pull Request

Используя GitHub CLI (Рекомендуется)

Базовое создание PR

gh pr create --title ""Feature: Implement New Functionality"" --body ""Description of changes""

Расширенное создание PR

gh pr create 
  --title ""Feature: Implement New Functionality"" 
  --body ""## Changes
- Implemented new feature
- Updated tests
- Added documentation

## Related Issues
Closes #123"" 
  --base main 
  --head feature/your-feature-name 
  --reviewer username1,username2 
  --label ""enhancement,documentation"" 
  --milestone ""v1.0.0"" 
  --project ""Project Board""

5. Управление вашим PR

# Просмотр PR в браузере
gh pr view --web

# Проверка статуса PR
gh pr status

# Список всех PR
gh pr list

# Добавление проверяющих к существующему PR
gh pr edit --add-reviewer username1,username2

# Добавление меток
gh pr edit --add-label ""priority,bug""

Лучшие практики

  1. Именование веток
    • Используйте описательные префиксы: feature/, fix/, docs/, refactor/
    • Включайте номер задачи, если применимо: feature/123-user-authentication
  2. Сообщения коммитов
    • Следуйте соглашению о коммитах (Соглашение)
    • Включайте область действия и описание
    • Ссылайтесь на задачи: ""fixes #123""
  3. Описание PR
    • Используйте шаблоны, если они доступны
    • Включайте контекст и обоснование
    • Перечисляйте связанные задачи и зависимости
    • Добавляйте скриншоты для изменений UI
  4. Проверка кода
    • Оперативно отвечайте на отзывы
    • Обновляйте описание PR при необходимости
    • Быстро разрешайте конфликты

Устранение неполадок

Распространенные проблемы и решения

  1. Ошибка аутентификации

    gh auth login --web
    
  2. Отклонение отправки

    git pull origin main
    git rebase main
    git push -f origin feature/your-feature-name
    
  3. Конфликты слияния

    git checkout main
    git pull
    git checkout feature/your-feature-name
    git rebase main
    # Разрешите конфликты и продолжите
    git rebase --continue
    

Расширенные функции

Черновики PR

gh pr create --draft

Шаблоны PR

Создайте файл .github/pull_request_template.md в вашем репозитории для стандартизированных описаний PR.

Автоматизация создания PR

Вы можете создать псевдонимы оболочки или скрипты для общих шаблонов PR:

# Добавьте в .bashrc или .zshrc
alias pr-create='gh pr create --template ""template.md"" --label ""needs-review""'

Не забывайте обновлять GitHub CLI для получения последних функций:

# Обновление GitHub CLI
gh update

Часто задаваемые вопросы

Что делать, если аутентификация не удалась?

Используйте `gh auth login --web` для аутентификации через браузер вместо интерфейса терминала.

Как обрабатывать отклоненные отправки?

1. Получите последние изменения: `git pull origin main` 2. Выполните перебазирование вашей ветки: `git rebase main` 3. Принудительно отправьте: `git push -f origin feature/your-feature-name`

Как разрешить конфликты слияния?

1. Перейдите на main: `git checkout main` 2. Получите последние изменения: `git pull` 3. Переключитесь на вашу ветку: `git checkout feature/your-feature-name` 4. Выполните перебазирование: `git rebase main` 5. Разрешите конфликты и продолжите: `git rebase --continue`

Могу ли я создавать черновики PR?

Да, используйте флаг `--draft`: `gh pr create --draft`

Как использовать шаблоны PR?

Создайте файл `.github/pull_request_template.md` в вашем репозитории для стандартизированных описаний PR.

Заключение

Освоение подхода к созданию и управлению pull request’ами через терминал может значительно улучшить ваш рабочий процесс разработки. GitHub CLI (gh) предоставляет мощный набор инструментов, которые упрощают процесс работы с PR, от создания до слияния. Следуя лучшим практикам, описанным в этом руководстве, и используя функции GitHub CLI, вы можете:

  • Экономить время, избегая переключений контекста между терминалом и браузером
  • Поддерживать стабильное качество PR с помощью шаблонов и соглашений
  • Эффективно решать распространенные проблемы с PR
  • Автоматизировать повторяющиеся задачи, связанные с PR

Listen to your bugs 🧘, with OpenReplay

See how users use your app and resolve issues fast.
Loved by thousands of developers

We use cookies to improve your experience. By using our site, you accept cookies.