# Краткое руководство по запросам на вытягивание с накоплением

gh stack Установите расширение и GitHub CLI создайте первый набор запросов на вытягивание с накоплением.

> \[!NOTE] Эта функция доступна в публичном предварительном просмотре и может измениться.

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

Стек — это ряд запросов на вытягивание в том же репозитории, где каждый запрос на вытягивание предназначен для ветви запроса на вытягивание под ним, формируя упорядоченную цепочку, которая приземляется в одной ветви, как правило, ваша основная ветвь. Вместо одного большого запроса на вытягивание вы получаете набор небольших запросов на вытягивание. Так как каждый запрос на вытягивание имеет свой собственный фокус, товарищи по команде могут просматривать и утверждать каждый слой независимо.

## Необходимые условия

* GitHub CLI (`gh`) 2.90.0 или более поздней версии и Git 2.20 или более поздней версии.
  * Проверка подлинности GitHub CLI с помощью `gh auth login`.
* Репозиторий GitHub , в который можно отправить.

## Установка расширения CLI

```shell copy
gh extension install github/gh-stack
```

> \[!TIP]
> Чтобы использовать стекированные запросы на вытягивание с агентами программирования ИИ, например GitHub Copilot, установите `gh-stack` навык.
>
> ```shell copy
> gh skill install github/gh-stack
> ```

## Создание первого стека

1. Чтобы инициализировать стек, перейдите в репозиторий и выполните следующую команду. Это создает запись отслеживания и первую ветвь.

   ```shell copy
   gh stack init
   ```

   Вам будет предложено назвать первую ветвь. По умолчанию стек использует ветвь по умолчанию репозитория (например, `main`в качестве магистрали), но стек может нацелиться на любую ветвь.

2. Работайте с первой ветвью как обычно: написание кода, изменения стадии и фиксация.

   ```shell
   # ... write code ...
   git add .
   git commit -m "helpful-commit-message"
   ```

3. Когда вы будете готовы к следующей логической единице работы, добавьте новую ветвь в начало стека.

   ```shell copy
   gh stack add BRANCH-NAME
   # ... write code ...
   git add .
   git commit -m "Another-helpful-commit-message"
   ```

4. Отправка всех ветвей в удаленный режим.

   ```shell copy
   gh stack push
   ```

5. Создайте запросы на вытягивание и свяжите их в виде стека GitHub.

   ```shell copy
   gh stack submit
   ```

   Каждый запрос на вытягивание создается с правильной базовой ветвью. Целевые объекты `main`первой ветви и следующая ветвь `BRANCH-NAME` ориентирована на первую ветвь. Рецензенты будут видеть только дифф для этого слоя. Запросы на вытягивание автоматически связаны в виде стека GitHub , и вы можете увидеть их порядок и быстро перемещаться между ними.

6. Просмотр стека и просмотр полного состояния в любое время.

   ```shell copy
   gh stack view
   ```

   Эта команда показывает все ветви, ссылки запроса на вытягивание, состояния и самую последнюю фиксацию для каждой из них.

7. Используется `gh stack add -Am "MESSAGE"` для этапов всех изменений, фиксации и создания следующей ветви на одном шаге. Вам не потребуется отдельный или `git commit`отдельный`git add`. Если текущая ветвь еще не имеет фиксаций, фиксация земли там; Если у него уже есть фиксации, создается новая ветвь.

   ```shell
   # Commit lands on the current branch
   gh stack add -Am "Auth middleware"

   # Current branch already has commits, so this creates the next branch
   gh stack add -Am "API routes"
   ```

8. Когда вы будете готовы, отправьте все и создайте запросы на вытягивание.

   ```shell copy
   gh stack submit
   ```

## Дальнейшие действия

* [Управление запросами на вытягивание с накоплением](/ru/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests)
* [Объединение запросов на вытягивание с накоплением](/ru/pull-requests/how-tos/merge-and-close-pull-requests/merging-stacked-pull-requests)
* [Код, созданный Стеком ИИ, в запросах на вытягивание](/ru/copilot/tutorials/stack-ai-generated-code-in-pull-requests)
* [Развертывание запросов на вытягивание с накоплением в организации](/ru/pull-requests/tutorials/roll-out-stacked-prs)