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

Pull request’ы (PR) являются фундаментальной частью совместной разработки на GitHub, обеспечивая проверку кода и обсуждение перед слиянием изменений. Это руководство объясняет, как эффективно создавать и управлять PR с использованием терминала, в основном используя GitHub CLI (gh
).
Ключевые моменты
- Научитесь использовать GitHub CLI для управления PR
- Освойте рабочие процессы создания PR через терминал
- Следуйте лучшим практикам создания PR
- Решайте распространенные проблемы
- Внедряйте расширенные функции PR
Предварительные требования
Перед началом убедитесь, что у вас есть:
- Установленный и настроенный Git (Скачать Git)
- Установленный GitHub CLI (
gh
) (Документация GitHub CLI) - Аккаунт GitHub (Зарегистрироваться)
- Доступ к репозиторию и необходимые разрешения
- Базовое понимание команд Git
Настройка 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""
Лучшие практики
- Именование веток
- Используйте описательные префиксы:
feature/
,fix/
,docs/
,refactor/
- Включайте номер задачи, если применимо:
feature/123-user-authentication
- Используйте описательные префиксы:
- Сообщения коммитов
- Следуйте соглашению о коммитах (Соглашение)
- Включайте область действия и описание
- Ссылайтесь на задачи: ""fixes #123""
- Описание PR
- Используйте шаблоны, если они доступны
- Включайте контекст и обоснование
- Перечисляйте связанные задачи и зависимости
- Добавляйте скриншоты для изменений UI
- Проверка кода
- Оперативно отвечайте на отзывы
- Обновляйте описание PR при необходимости
- Быстро разрешайте конфликты
Устранение неполадок
Распространенные проблемы и решения
-
Ошибка аутентификации
gh auth login --web
-
Отклонение отправки
git pull origin main git rebase main git push -f origin feature/your-feature-name
-
Конфликты слияния
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
Часто задаваемые вопросы
[TOGGLE question=""Что делать, если аутентификация не удалась?""
answer=""Используйте gh auth login --web
для аутентификации через браузер вместо интерфейса терминала.""]
[TOGGLE question=""Как обрабатывать отклоненные отправки?""
answer=""1. Получите последние изменения: git pull origin main
n2. Выполните перебазирование вашей ветки: git rebase main
n3. Принудительно отправьте: git push -f origin feature/your-feature-name
""]
[TOGGLE question=""Как разрешить конфликты слияния?""
answer=""1. Перейдите на main: git checkout main
n2. Получите последние изменения: git pull
n3. Переключитесь на вашу ветку: git checkout feature/your-feature-name
n4. Выполните перебазирование: git rebase main
n5. Разрешите конфликты и продолжите: git rebase --continue
""]
[TOGGLE question=""Могу ли я создавать черновики PR?""
answer=""Да, используйте флаг --draft
: gh pr create --draft
""]
[TOGGLE question=""Как использовать шаблоны PR?""
answer=""Создайте файл .github/pull_request_template.md
в вашем репозитории для стандартизированных описаний PR.""]
Заключение
Освоение подхода к созданию и управлению pull request’ами через терминал может значительно улучшить ваш рабочий процесс разработки. GitHub CLI (gh
) предоставляет мощный набор инструментов, которые упрощают процесс работы с PR, от создания до слияния. Следуя лучшим практикам, описанным в этом руководстве, и используя функции GitHub CLI, вы можете:
- Экономить время, избегая переключений контекста между терминалом и браузером
- Поддерживать стабильное качество PR с помощью шаблонов и соглашений
- Эффективно решать распространенные проблемы с PR
- Автоматизировать повторяющиеся задачи, связанные с PR