{"meta":{"title":"Команды CLI с накоплением запросов на вытягивание","intro":"Найдите каждую команду, флаг и код выхода для gh stack расширения.GitHub CLI","product":"Запросы на включение внесенных изменений","breadcrumbs":[{"href":"/ru/pull-requests","title":"Запросы на включение внесенных изменений"},{"href":"/ru/pull-requests/reference","title":"Справочные материалы"},{"href":"/ru/pull-requests/reference/stacked-prs-cli-commands","title":"Команды CLI с накоплением PR"}],"documentType":"article"},"body":"# Команды CLI с накоплением запросов на вытягивание\n\nНайдите каждую команду, флаг и код выхода для gh stack расширения.GitHub CLI\n\n> \\[!NOTE] Эта функция доступна в публичном предварительном просмотре и может измениться.\n\nРасширение `gh stack` для GitHub CLI создания стека запросов на вытягивание из локального репозитория и управления ими. Общие сведения о стеках см. в разделе [Запросы на вытягивание с накоплением](/ru/pull-requests/reference/stacked-pull-requests).\n\n## Installation\n\n```shell\ngh extension install github/gh-stack\n```\n\nДля расширения требуется GitHub CLI (`gh`) версия 2.0 или более поздняя.\n\n> \\[!NOTE]\n> Расширение `gh stack` использует GitHub CLI проверку подлинности. Если вы еще не прошли проверку подлинности, выполните команду `gh auth login`.\n\n## Сводка по командам\n\n| Command                                   | Purpose                                                                                                           |\n| ----------------------------------------- | ----------------------------------------------------------------------------------------------------------------- |\n| [`gh stack init`](#gh-stack-init)         | Инициализация нового стека в текущем репозитории.                                                                 |\n| [`gh stack add`](#gh-stack-add)           | Добавьте новую ветвь поверх текущего стека.                                                                       |\n| [`gh stack view`](#gh-stack-view)         | Просмотр текущего стека.                                                                                          |\n| [`gh stack checkout`](#gh-stack-checkout) | Проверьте стек по номеру стека, номеру запроса на вытягивание, URL-адресу запроса на вытягивание или имени ветви. |\n| [`gh stack modify`](#gh-stack-modify)     | Интерактивно переструктурировать текущий стек.                                                                    |\n| [`gh stack unstack`](#gh-stack-unstack)   | Удалите стек из локального отслеживания и разместите его.GitHub                                                   |\n| [`gh stack submit`](#gh-stack-submit)     | Отправьте все ветви, а затем создайте или обновите запросы на вытягивание и стек GitHub.                          |\n| [`gh stack sync`](#gh-stack-sync)         | Получение, перебазировка, отправка и синхронизация состояния запроса на вытягивание в одной команде.              |\n| [`gh stack rebase`](#gh-stack-rebase)     | Извлеките из удаленного узла и выполните каскадную перебазу по стеку.                                             |\n| [`gh stack push`](#gh-stack-push)         | Отправьте активные ветви в текущем стеке в удаленный.                                                             |\n| [`gh stack link`](#gh-stack-link)         | Связывание запросов на вытягивание в стек GitHub без локального отслеживания.                                     |\n| [`gh stack merge`](#gh-stack-merge)       | Объединение одного или нескольких запросов на вытягивание с накоплением одновременно.                             |\n| [`gh stack switch`](#gh-stack-switch)     | Интерактивный переход на другую ветвь в стеке.                                                                    |\n| [`gh stack up`](#gh-stack-up)             | Двигайтесь к верхней части стека, от магистрали.                                                                  |\n| [`gh stack down`](#gh-stack-down)         | Двигайтесь вниз к нижней части стека, в сторону магистрали.                                                       |\n| [`gh stack top`](#gh-stack-top)           | Перейдите в верхнюю часть стека.                                                                                  |\n| [`gh stack bottom`](#gh-stack-bottom)     | Переход к нижней части стека.                                                                                     |\n| [`gh stack trunk`](#gh-stack-trunk)       | Перейдите в магистральную ветвь.                                                                                  |\n| [`gh stack alias`](#gh-stack-alias)       | Создайте короткий псевдоним команды, чтобы можно было ввести меньше.                                              |\n| [`gh stack feedback`](#gh-stack-feedback) | Поделитесь отзывом о `gh stack` расширении.                                                                       |\n\n## Управление стеком\n\n### `gh stack init`\n\nИнициализация нового стека в текущем репозитории.\n\n```shell\ngh stack init [flags] [branches...]\n```\n\nИнициализирует новый стек локально. В интерактивном режиме (без аргументов) командная строка для имени ветви и предлагает использовать текущую ветвь в качестве первого слоя.\n\nПри предоставлении явных имен ветвей существующие ветви применяются автоматически и создаются отсутствующие ветви. Магистраль по умолчанию используется в ветви по умолчанию репозитория, если вы не переопределите ее.`--base`\n\nКоманда включается `git rerere` автоматически, чтобы разрешения конфликтов запоминались в перебазах.\n\n| Flag                  | Описание                                                                                 |\n| --------------------- | ---------------------------------------------------------------------------------------- |\n| `-b, --base <branch>` | Магистральная ветвь для стека (по умолчанию используется ветвь репозитория по умолчанию) |\n\n**Примеры:**\n\n```shell\n# Interactive — prompts for branch names\ngh stack init\n\n# Non-interactive — specify first branch upfront\ngh stack init feature-auth\n\n# Use a different trunk branch\ngh stack init --base develop feature-auth\n\n# Adopt or create multiple branches at once\ngh stack init feature-auth feature-api feature-ui\n```\n\n### `gh stack add`\n\nДобавьте новую ветвь поверх текущего стека.\n\n```shell\ngh stack add [flags] [branch]\n```\n\nСоздает новую ветвь в текущей head, добавляет ее в верхнюю часть стека и проверяет ее. Эту команду необходимо выполнить во время самой верхней ветви стека. Если имя ветви не указано, командная строка для одной из них не указана.\n\nПри необходимости можно выполнить изменения и создать фиксацию в рамках `add` потока. Если вы предоставляете `-m` без явного имени ветви, имя ветви создается автоматически в формате даты и slug, например `03-24-add_login`.\n\n| Flag                     | Описание                                                                      |\n| ------------------------ | ----------------------------------------------------------------------------- |\n| `-A, --all`              | Этап всех изменений, включая незаслеченные файлы. Требует использования `-m`. |\n| `-u, --update`           | Этап изменения только отслеживаемых файлов. Требует использования `-m`.       |\n| `-m, --message <string>` | Создание фиксации с этим сообщением перед созданием ветви                     |\n\n> \\[!NOTE]\n> `-A` и `-u` являются взаимоисключающими.\n\n**Примеры:**\n\n```shell\n# Create a branch by name\ngh stack add api-routes\n\n# Prompt for a branch name interactively\ngh stack add\n\n# Stage all changes, commit, and auto-generate the branch name\ngh stack add -Am \"Add login endpoint\"\n\n# Stage only tracked files, commit, and auto-generate the branch name\ngh stack add -um \"Fix auth bug\"\n\n# Commit already-staged changes and auto-generate the branch name\ngh stack add -m \"Add user model\"\n\n# Stage all changes, commit, and use an explicit branch name\ngh stack add -Am \"Add tests\" test-layer\n\n# Stage only tracked files, commit, and use an explicit branch name\ngh stack add -um \"Update docs\" docs-layer\n```\n\n### `gh stack view`\n\nПросмотр текущего стека.\n\n```shell\ngh stack view [flags]\n```\n\nОтображает все ветви в стеке, их упорядочение, ссылки запроса на вытягивание и последнюю фиксацию с относительной меткой времени. Выходные данные передаются через пейджер, который учитывает `GIT_PAGER` или `PAGER`по умолчанию используется `less -R`.\n\n| Flag          | Описание                                         |\n| ------------- | ------------------------------------------------ |\n| `-s, --short` | Компактные выходные данные (только имена ветвей) |\n| `--json`      | Выходные данные стека в формате JSON             |\n\n**Примеры:**\n\n```shell\ngh stack view\ngh stack view --short\ngh stack view --json\n```\n\n### `gh stack checkout`\n\nПроверьте стек по номеру стека, номеру запроса на вытягивание, URL-адресу запроса на вытягивание или имени ветви.\n\n```shell\ngh stack checkout [<stack-number> | <pr-number> | <pr-url> | <branch>]\n```\n\nГолый номер интерпретируется сначала как стек или номер запроса на вытягивание. Это идентификаторы с областью действия репозитория, отображаемые в пользовательском интерфейсе GitHub . Если число не совпадает, он выполняется в качестве имени ветви.\n\nПри ссылке на удаленный стек команда извлекает стек GitHub, извлекает ветви и настраивает стек локально. Если стек уже существует локально и соответствует, команда переключается в ветвь. Если локальные и удаленные стеки имеют разные композиции, вам будет предложено устранить конфликт.\n\nПри указании имени ветви команда разрешает ее только для локально отслеживаемых стеков.\n\nПри выполнении команды без аргументов в интерактивном терминале открывается список средств выбора, доступных для поиска, каждый стек, отслеживаемый локально, и стеки, которые существуют только в GitHub. В каждой строке показан номер стека, его нижняя и верхняя ветвь, базовая ветвь, строка состояния, сводка о том, сколько запросов на вытягивание объединяются, открываются, закрываются или еще не отправляются, и независимо от того, доступен ли стек локально или только в удаленном режиме. Фильтрация с помощью вкладок **\"Все**\", **\"Локальный**\" и **\"Удаленный** \" или \"Тип `/` \" для поиска. Полностью объединенные стеки опущены. Выбор клонирования удаленного стека локально перед переключением на него.\n\n**Примеры:**\n\n```shell\n# Check out a stack by its stack number\ngh stack checkout 7\n\n# Check out a stack by pull request number\ngh stack checkout 42\n\n# Check out a stack by pull request URL\ngh stack checkout https://github.com/owner/repo/pull/42\n\n# Check out a stack by branch name (local only)\ngh stack checkout feature-auth\n\n# Interactive — pick from all available stacks (local and remote)\ngh stack checkout\n```\n\n### `gh stack modify`\n\nИнтерактивно переструктурировать текущий стек.\n\n```shell\ngh stack modify [flags]\n```\n\nОткрывает интерактивный пользовательский интерфейс терминала для реструктуризации стека. Все изменения выполняются в интерфейсе и применяются вместе при нажатии <kbd>клавиш CTRL</kbd>+<kbd>S</kbd>. Нельзя изменять ветви из объединенных запросов на вытягивание.\n\n| Flag         | Описание                                                                               |\n| ------------ | -------------------------------------------------------------------------------------- |\n| `--continue` | Продолжить после разрешения конфликтов                                                 |\n| `--abort`    | Отмените сеанс изменения и восстановите стек в его состоянии перед выполнением команды |\n\n**Предпосылки**\n\nПеред открытием интерфейса команда проверяет следующие условия:\n\n1. Необходимо локально извлечь активный стек.\n2. Рабочее дерево должно быть чистым, без незафиксированных изменений.\n3. Перебаза не выполняется.\n4. Запрос на вытягивание в стеке не помещается в очередь для слияния.\n5. Журнал фиксаций должен быть линейным, без фиксаций слиянием и без разных ветвей.\n\n**Operations**\n\n| Операция                       | Ключ                                                                                                 | Effect |\n| ------------------------------ | ---------------------------------------------------------------------------------------------------- | ------ |\n| Drop                           |                                                                                                      |        |\n| <kbd>x</kbd>                   | Удалите ветвь и ее фиксации из стека. Сохраняется локальная ветвь и связанный запрос на вытягивание. |        |\n| Свернуть вниз                  |                                                                                                      |        |\n| <kbd>д</kbd>                   | Поглощает фиксации в ветвь ниже, в сторону магистрали. Свернутая ветвь удаляется из стека.           |        |\n| Свернуть вверх                 |                                                                                                      |        |\n| <kbd>u</kbd>                   | Поглощает фиксации в ветвь выше, от магистрали. Свернутая ветвь удаляется из стека.                  |        |\n| Вставка ниже                   |                                                                                                      |        |\n| <kbd>i</kbd>                   | Вставьте новую пустую ветвь под курсором в сторону магистрали.                                       |        |\n| Вставка выше                   |                                                                                                      |        |\n| <kbd>Я</kbd>                   | Вставьте новую пустую ветвь над курсором, вдали от магистрали.                                       |        |\n| Переместить вниз               |                                                                                                      |        |\n| <kbd>Shift</kbd>+<kbd>):</kbd> | Переупорядочение ветви вниз, в сторону магистрали.                                                   |        |\n| Переместить вверх              |                                                                                                      |        |\n| <kbd>Shift</kbd>+<kbd>^</kbd>  | Переупорядочение ветви вверх, от магистрали.                                                         |        |\n| Rename                         |                                                                                                      |        |\n| <kbd>r</kbd>                   | Переименуйте ветвь с помощью встроенного запроса.                                                    |        |\n| Undo                           |                                                                                                      |        |\n| <kbd>z</kbd>                   | Отмените последнее поэтапное действие.                                                               |        |\n\n**Этап применения**\n\nПри нажатии <kbd>клавиш CTRL</kbd>+<kbd>S</kbd> поэтапное изменение применяется путем переименования ветвей, вставки новых ветвей, свертывания или удаления ветвей и выполнения каскадной повторной базы для создания журнала линейной фиксации с нужным состоянием стека.\n\nЕсли возникает конфликт перебазы, можно:\n\n* Устраните конфликты, разверните файлы, а затем запустите `gh stack modify --continue`.\n* Выполните `gh stack modify --abort` , чтобы прервать операцию и восстановить стек до предыдущего состояния.\n\n**После изменения**\n\nЕсли вы уже создали стек запросов GitHubна вытягивание, выполните отправку `gh stack submit` обновленных ветвей и повторно создайте стек. Старый стек автоматически заменяется.\n\n**Примеры:**\n\n```shell\n# Open the interactive modify interface\ngh stack modify\n\n# Continue after resolving a conflict\ngh stack modify --continue\n\n# Abort and restore to the previous state\ngh stack modify --abort\n```\n\n### `gh stack unstack`\n\nУдалите стек из локального отслеживания и разместите его.GitHub Эта команда также доступна как `gh stack delete`.\n\n```shell\ngh stack unstack [<stack-number>] [flags]\n```\n\nБез аргументов команда нацелена на активный стек, который является стеком, который содержит извлеченную в настоящее время ветвь. Он отменяет стек GitHub и удаляет локальное отслеживание.\n\nУкажите номер стека, идентификатор, отображаемый в пользовательском интерфейсе GitHubстека, чтобы отменить стек. Это работает из любого места в репозитории, независимо от того, извлекается ли стек локально, так как стек не взломан непосредственно через GitHub API. Если стек также доступен локально, его локальное отслеживание также удаляется.\n\nЗапросы на вытягивание, объединенные, объединения или очереди для слияния не могут быть удалены из стека и остаться частью стека GitHub . При удалении каждого запроса на вытягивание стек растворяется и удаляется любое локальное отслеживание. Если некоторые запросы на вытягивание остаются в стеке, стек сохраняется и локальное отслеживание( если таковые есть) не изменяется. Используйте `--local` для пропуска удаленной операции и удаления только локального отслеживания.\n\nЭта команда полезна при необходимости реструктурировать стек, удалив ветвь, вставляя ветвь, переупорядочение ветвей, переименование ветвей или внесение других крупных изменений. После отмены кэширования используйте `gh stack init` для повторного создания стека с нужной структурой. Существующие ветви принимаются автоматически.\n\n| Flag      | Описание                                                              |\n| --------- | --------------------------------------------------------------------- |\n| `--local` | Удалите только стек локально, сохраняя его в локальном режиме. GitHub |\n\n**Примеры:**\n\n```shell\n# Unstack the current stack on GitHub and remove local tracking\ngh stack unstack\n\n# Unstack a specific stack by its number\ngh stack unstack 7\n\n# Only remove local tracking\ngh stack unstack --local\n```\n\n## Удаленные операции\n\n### `gh stack submit`\n\nОтправьте все ветви, а затем создайте или обновите запросы на вытягивание и стек GitHub.\n\n```shell\ngh stack submit [flags]\n```\n\nСоздает запрос на вытягивание для каждой ветви в стеке, принудив ветви к удаленному. После создания запросов `submit` на вытягивание автоматически создает стек GitHub для связывания запросов на вытягивание. Если стек уже существует GitHub, например из предыдущей отправки, новые запросы на вытягивание добавляются в существующий стек.\n\nЕсли каждый запрос на вытягивание в стеке уже был объединен, этот стек завершен и не может быть расширен. В этом случае `submit` автоматически запускает новый стек, корневый стек для не объединенных ветвей и создает его в GitHub, оставляя объединенный стек без изменений.\n\nВ интерактивном терминале `submit` открывается полноэкранный редактор на одном экране.\n\n* **Левая панель.** Каждая ветвь без запроса на вытягивание включена по умолчанию. Отмените выбор, который вы не хотите отправить с <kbd>помощью ctrl</kbd>+<kbd>X</kbd>. Так как каждый запрос на вытягивание строится в ветви под ним, отменяя выбор ветви, также отменяет выбор тех, от которых он размещен, и повторно включает ветвь повторно включает те из них, от которых она зависит. Ветви, у которых уже есть запрос на вытягивание, открытые, черновики, очереди или объединенные, отображаются для контекста, но блокируются. Измените их в Интернете.\n* **Правая панель.** Для ориентированной ветви черновики заголовка и описания и выберите, открывается ли запрос на вытягивание, готовый к просмотру или в виде черновика. Описание предварительно заполнено из шаблона запроса на вытягивание репозитория или фиксаций с предварительным просмотром markdown и escape-файлом `$EDITOR` . Фокусирование заблокированной ветви показывает карточку только для чтения с ссылкой на запрос на вытягивание. Нажмите <kbd>кнопку o</kbd> , чтобы открыть ее в браузере.\n\nНажмите <kbd>клавиши CTRL</kbd>+<kbd>S</kbd> , чтобы отправить все включенные запросы на вытягивание одновременно. Редактор поддерживает ввод клавиатуры и мыши. Передайте `--auto`или запустите команду в неинтерактивном терминале, например CI, чтобы пропустить редактор и использовать автоматически созданные заголовки.\n\nЕсли ветви уже имеют открытые запросы на вытягивание, но нет стека GitHub, у вас есть возможность связать запросы на вытягивание в стек с <kbd>помощью ctrl</kbd>+<kbd>B</kbd>.\n\nВ редакторе новые запросы на вытягивание по умолчанию готовы к просмотру. Вы можете перевернуть любой запрос на вытягивание для черновика с помощью переключателя. При использовании `--auto`новые запросы на вытягивание создаются как черновики, если вы не передаете `--open`.\n\n| Flag              | Описание                                                                                                                                                |\n| ----------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `--auto`          | Пропустить редактор и использовать автоматически созданные заголовки запросов на вытягивание                                                            |\n| `--open`          | Создайте новые запросы на вытягивание как готовые для проверки, а не черновики, и пометьте существующие запросы на вытягивание как готовые для проверки |\n| `--remote <name>` | Удаленный для отправки (по умолчанию автоматически обнаруженный удаленный)                                                                              |\n\n**Примеры:**\n\n```shell\ngh stack submit\ngh stack submit --auto\ngh stack submit --open\n```\n\n### `gh stack sync`\n\nПолучение, перебазировка, отправка и синхронизация состояния запроса на вытягивание в одной команде.\n\n```shell\ngh stack sync [flags]\n```\n\nСинхронизирует весь стек.\n\n1. **Принести.** Извлекает последние изменения из `origin`.\n2. **Согласование удаленного стека.** Зеркально отражает стек локально GitHub . Когда запросы на вытягивание были добавлены в стек GitHub, чтобы удаленный был впереди локального стека, их ветви вытягиваются и добавляются в локальный стек автоматически. Если локальные и удаленные стеки действительно разошлись, например, так как вы добавили ветвь локально, а различные запросы на вытягивание были добавлены в стек GitHub, вам будет предложено устранить разницу. См. [раздел \"Разверждаемые стеки](#diverged-stacks)\". В неинтерактивном терминале расхождение прерывает синхронизацию, и ничего не отправляется или обновляется.\n3. **Быстрый вперед магистрали.** Переадресовывает ветвь магистрали, чтобы соответствовать удаленному. Этот шаг пропускается, если ветви разошлись.\n4. **Каскадная перебаза.** Перебазирует все ветви стека на обновленные родители, но только если магистраль перемещена. Если обнаружен конфликт, все ветви восстанавливаются в исходном состоянии, и рекомендуется запускать `gh stack rebase` их для интерактивного разрешения конфликтов.\n5. **Нажмите.** Отправляет все ветви, используя `--force-with-lease` , если произошла перебаза.\n6. **Синхронизация запросов на вытягивание.** Синхронизирует состояние запроса на вытягивание из GitHub и сообщает о состоянии каждого запроса на вытягивание.\n7. **Синхронизация стека.** Связывает открытые запросы на вытягивание стека в стек GitHub, создавая объект удаленного стека, если он еще не существует, или обновляет его, если он частично сформирован. Это происходит только в том случае, если существуют два или более запросов на вытягивание. Синхронизация никогда не открывает запросы на вытягивание. Используйте `gh stack submit` для этого.\n8. **Чернослив.** В интерактивных терминалах предлагается удалить локальные ветви для объединенных запросов на вытягивание. Используется `--prune` для автоматического обрезки.\n\nЧистое удаленное обновление, в котором запросы на вытягивание добавляются поверх локального стека, вытягиваются автоматически без запроса, поэтому `sync` безопасно выполняться в службе автоматизации. Синхронизация запрашивает только те стеки, когда стеки действительно разошлись.\n\n#### Разверждаемые стеки\n\nЕсли ни один стек не является чистым префиксом другого, например, так как вы добавили ветвь локально, а отдельные запросы на вытягивание были добавлены в один и тот же стек GitHub, синхронизация не может объединить два автоматически. В интерактивном терминале он предлагает три варианта.\n\n* **Используйте удаленный стек в качестве источника истины.** Заменяет состав локального стека удаленным, извлекая отсутствующие ветви. Если вы находились в ветви, в которую удаленный стек больше не содержится, вы перемещаесь в ближайшую выживающую ветвь. Для этого требуется чистое рабочее состояние без незафиксированных изменений.\n* **Удаление стека GitHubв .** Удаляет объект GitHub стека и останавливает синхронизацию. Запросы на вытягивание и локальные ветви не связаны, и удаляется только стек GitHub . Повторно создайте стек с `gh stack submit`помощью первого запуска `gh stack modify` , если вы хотите изменить ее структуру. Это способ сопоставления GitHub локального стека, так как `submit`, в отличие `sync`от этого, также создает запросы на вытягивание для любых ветвей, которые вы еще не отправили.\n* **Отмена.** Прерывает синхронизацию без отправки ветвей или обновления запросов на вытягивание.\n\nВ неинтерактивном терминале расхождение прерывает синхронизацию, завершается успешно, без отправки ветвей или обновления запросов на вытягивание. Разрешите его путем отмены размещения и повторного восстановления стека.\n\n| Flag              | Описание                                                                                    |\n| ----------------- | ------------------------------------------------------------------------------------------- |\n| `--remote <name>` | Удаленный для получения и отправки (по умолчанию для автоматического обнаружения удаленных) |\n| `--prune`         | Удаление локальных ветвей для объединенных запросов на вытягивание                          |\n\n**Примеры:**\n\n```shell\ngh stack sync\n\n# Sync and automatically prune merged branches\ngh stack sync --prune\n```\n\n### `gh stack rebase`\n\nИзвлеките из удаленного узла и выполните каскадную перебазу по стеку.\n\n```shell\ngh stack rebase [flags] [branch]\n```\n\nИзвлекает последние изменения, `origin`а затем гарантирует, что каждая ветвь в стеке имеет конечную часть предыдущего слоя в журнале фиксации. Ветви перебазируются по порядку, от магистрали вверх.\n\nЕсли запрос на вытягивание ветви был объединен, перебаза автоматически переключается в `--onto` режим для правильного воспроизведения фиксаций в верхней части целевого объекта слияния.\n\nЕсли конфликт повторной базы возникает, операция приостанавливает и выводит конфликтующие файлы с номерами строк. Устраните конфликты, наведите их на `git add`стадию, а затем продолжайте работу `--continue`. Чтобы отменить всю перебазу, используйте `--abort` для восстановления всех ветвей в их состоянии перед повторной базой.\n\n| Flag                              | Описание                                                                                                     |\n| --------------------------------- | ------------------------------------------------------------------------------------------------------------ |\n| `--downstack`                     | Только перебазировать ветви из магистрали в текущую ветвь                                                    |\n| `--upstack`                       | Только перебазировать ветви из текущей ветви в верхнюю часть                                                 |\n| `--no-trunk`                      | Пропустить магистраль. Только перебазировать ветви стека на другую, без получения и без перебазы магистрали. |\n| `--continue`                      | Продолжить повторную базу после разрешения конфликтов                                                        |\n| `--abort`                         | Отмена повторной базы и восстановление всех ветвей в их состоянии перед повторной базой                      |\n| `--remote <name>`                 | Удаленное получение из (по умолчанию для автоматического обнаружения удаленного)                             |\n| `--committer-date-is-author-date` | Задайте дату фиксации на дату автора во время повторной базы данных. Псевдоним: `--preserve-dates`.          |\n\n| Argument   | Описание                                                |\n| ---------- | ------------------------------------------------------- |\n| `[branch]` | Целевая ветвь (по умолчанию используется текущая ветвь) |\n\n**Примеры:**\n\n```shell\n# Rebase the entire stack\ngh stack rebase\n\n# Only rebase branches below the current one\ngh stack rebase --downstack\n\n# Only rebase branches above the current one\ngh stack rebase --upstack\n\n# Rebase stack branches without pulling from or rebasing with trunk\ngh stack rebase --no-trunk\n\n# After resolving a conflict\ngh stack rebase --continue\n\n# Abort rebase and restore everything\ngh stack rebase --abort\n\n# Rebase and preserve committer date as author date\ngh stack rebase --committer-date-is-author-date\n```\n\n### `gh stack push`\n\nОтправьте активные ветви в текущем стеке в удаленный.\n\n```shell\ngh stack push [flags]\n```\n\nОтправляет каждую активную ветвь, за исключением объединенных и очередных ветвей, в одном `git push`случае с помощью явной проверки на ветвь `--force-with-lease` . Обновление не является атомарным. Ветви, аренду которых можно обновить, даже если другая ветвь отклонена. Исправьте отклоненную ветвь и повторите команду. Ветви, которые уже были обновлены, остаются неизменными. Эта команда не создает или обновляет запросы на вытягивание. Используйте `gh stack submit` для этого.\n\n| Flag              | Описание                                                                   |\n| ----------------- | -------------------------------------------------------------------------- |\n| `--remote <name>` | Удаленный для отправки (по умолчанию автоматически обнаруженный удаленный) |\n\n**Примеры:**\n\n```shell\ngh stack push\ngh stack push --remote upstream\n```\n\n### `gh stack link`\n\nСвязывание запросов на вытягивание в стек GitHub без локального отслеживания.\n\n```shell\ngh stack link [flags] <stack-number | branch-or-pr> <branch-or-pr> [...]\n```\n\nСоздает или обновляет стек GitHub из имен ветвей или номеров запросов на вытягивание и URL-адреса. Эта команда не создает или не изменяет состояние локального отслеживания. Он предназначен для людей, которые управляют филиалами с другими инструментами локально, например Jujutsu, Sapling или git-town, и хотят открыть стек запросов на вытягивание. См [. раздел AUTOTITLE](/ru/pull-requests/reference/use-other-tools-with-stacked-pull-requests).\n\nАргументы в порядке стека от нижнего до верхнего. Аргументы ветви отправляются в удаленный режим автоматически перед созданием или поиском запросов на вытягивание. Для ветвей, которые уже имеют открытые запросы на вытягивание, используются эти запросы на вытягивание. Для ветвей без запросов на вытягивание новые запросы на вытягивание создаются автоматически с правильной цепочкой базовых ветвей. Существующие запросы на вытягивание, базовые ветви которых не соответствуют ожидаемой цепочке, автоматически исправляются.\n\nЕсли запросы на вытягивание еще не находятся в стеке, создается новый стек. Если некоторые запросы на вытягивание уже находятся в стеке, существующий стек обновляется, чтобы включить новые запросы на вытягивание. Существующие запросы на вытягивание никогда не удаляются из стека, так как обновление является аддитивным только.\n\nЧтобы увеличить существующий стек без перечисления запросов на вытягивание еще раз, передайте номер стека, отображаемое в пользовательском интерфейсе GitHubстека в качестве первого аргумента. Остальные аргументы добавляются в верхнюю часть этого стека. Аргументы, уже имеющиеся в стеке, пропускаются, а аргументы, принадлежащие другому стеку, отклоняются. Так как числа запросов стека и вытягивания никогда не перекрываются, числовой первый аргумент рассматривается как стек, только если он соответствует существующему стеку. В противном случае оно рассматривается как запрос на вытягивание или ветвь.\n\n| Flag              | Описание                                                                                                                                                    |\n| ----------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| `--base <branch>` | Базовая ветвь для нижней части стека (по умолчанию используется ветвь репозитория по умолчанию). Этот флаг игнорируется при добавлении в существующий стек. |\n| `--open`          | Пометьте новые и существующие запросы на вытягивание как готовые к проверке                                                                                 |\n| `--remote <name>` | Удаленный для отправки (по умолчанию автоматически обнаруженный удаленный)                                                                                  |\n\n**Примеры:**\n\n```shell\n# Link branches into a stack (pushes, creates pull requests, creates stack)\ngh stack link feature-auth feature-api feature-ui\n\n# Link existing pull requests by number\ngh stack link 10 20 30\n\n# Link existing pull requests by URL\ngh stack link https://github.com/owner/repo/pull/10 https://github.com/owner/repo/pull/20\n\n# Add branches to an existing stack of pull requests\ngh stack link 42 43 feature-auth feature-ui\n\n# Append to the top of an existing stack by its stack number, with no need\n# to list the pull requests already in stack 7 again\ngh stack link 7 48 feature-ui\n\n# Use a different base branch and mark pull requests as ready for review\ngh stack link --base develop --open feat-a feat-b feat-c\n```\n\n### `gh stack merge`\n\nОбъединение одного или нескольких запросов на вытягивание с накоплением одновременно.\n\n```shell\ngh stack merge [<stack-number> | <pr-number>]\n```\n\nОбъединяет каждый запрос на вытягивание в стеке вплоть до выбранного запроса на вытягивание в базовую ветвь. Слияние — это единая операция \"все\" или \"ничего\". Если не удается объединить любой запрос на вытягивание, ни один из них не объединен.\n\nБез аргументов команда использует активный локальный стек. Укажите номер стека для объединения стека, который вы не проверили, что является чисто удаленной операцией или укажите номер запроса на вытягивание для слияния непосредственно с этим запросом на вытягивание.\n\nВ интерактивном терминале командная строка определяет, какие запросы на вытягивание необходимо объединить, выбрать метод слияния и подтвердить. В неинтерактивном терминале или при использовании `--yes`весь стек или все содержимое до указанного запроса на вытягивание объединяется без запроса, используя метод слияния, который вы последний раз использовали, если не указать его.\n\nПеред слиянием проверяется только базовое состояние запроса на вытягивание. Каждый запрос на вытягивание должен быть открытым и не должен быть черновиком.\nGitHub вычисляет правила защиты ветви и репозитория при выполнении слияния, а все ошибки передаются вам.\n\n> \\[!NOTE]\n> Не удается обойти требования к слиянию при слиянии стека запросов на вытягивание.\n\nЕсли базовая ветвь использует очередь слияния, стек добавляется в очередь, а не объединяется напрямую. Очередь выбирает метод слияния, поэтому запрос пропускает шаг метода слияния, а `--merge-method``--squash``--rebase``--merge` флаги игнорируются с предупреждением. Выбранные запросы на вытягивание добавляются в очередь вместе, но они объединяются как очереди, поэтому они могут приземлиться в отдельных группах, а не одновременно.\n\n| Flag                              | Описание                                                       |\n| --------------------------------- | -------------------------------------------------------------- |\n| `--merge-method <method>`         | Метод слияния для использования: `merge`, `squash`или `rebase` |\n| `--merge`, , `--squash``--rebase` | Короткие инструкции для соответствующего метода слияния        |\n| `-y, --yes`                       | Слияние без запроса на подтверждение                           |\n\n**Примеры:**\n\n```shell\n# Merge the current stack, choosing pull requests interactively\ngh stack merge\n\n# Merge a stack you do not have checked out, by stack number\ngh stack merge 7\n\n# Merge everything up to and including pull request 42\ngh stack merge 42\n\n# Merge the whole current stack without prompting, squashing commits\ngh stack merge --yes --squash\n```\n\n## Навигация\n\nКоманды навигации перемещают вас между ветвями в текущем стеке без необходимости запоминать имена ветвей. Нижняя часть стека является ветвью, ближе всего к магистрали, а верхняя — ветвь от нее.\n`up` двигается от магистрали и `down` движется к нему.\n\nВсе команды навигации зажимают границы стека. Перемещение вверх с верхней или вниз вниз ничего не делает и отображает сообщение.\n\n### `gh stack switch`\n\nИнтерактивный переход на другую ветвь в стеке.\n\n```shell\ngh stack switch\n```\n\nОтображает интерактивный элемент выбора всех ветвей в текущем стеке, упорядоченный сверху, от магистрали до нижнего, близкого к магистрали, с их номером позиции. Выберите ветвь, чтобы извлечь ее.\n\nДля этой команды требуется интерактивный терминал.\n\n**Примеры:**\n\n```shell\ngh stack switch\n#    → Select a branch in the stack to switch to\n#      5. frontend\n#      4. api-endpoints\n#      3. auth-layer\n#      2. db-schema\n#      1. config-setup\n```\n\n### `gh stack up`\n\nДвигайтесь к верхней части стека, от магистрали.\n\n```shell\ngh stack up [n]\n```\n\nПеремещается вверх `n` по ветвям, по умолчанию — 1. Если вы находитесь в ветви магистрали, `up` перейдите в первую ветвь стека.\n\n**Примеры:**\n\n```shell\n# Move up one layer\ngh stack up\n\n# Move up three layers\ngh stack up 3\n```\n\n### `gh stack down`\n\nДвигайтесь вниз к нижней части стека, в сторону магистрали.\n\n```shell\ngh stack down [n]\n```\n\nПеремещается вниз `n` ветвей, по умолчанию — 1.\n\n**Примеры:**\n\n```shell\n# Move down one layer\ngh stack down\n\n# Move down two layers\ngh stack down 2\n```\n\n### `gh stack top`\n\nПерейдите в верхнюю часть стека.\n\n```shell\ngh stack top\n```\n\nПроверяет ветвь с магистрали.\n\n### `gh stack bottom`\n\nПереход к нижней части стека.\n\n```shell\ngh stack bottom\n```\n\nПроверяет ветвь ближе всего к магистрали.\n\n### `gh stack trunk`\n\nПерейдите в магистральную ветвь.\n\n```shell\ngh stack trunk\n```\n\nПроверяет ветвь магистрали текущего стека, например `main`. Вы должны находиться в ветви, которая входит в стек.\n\n## Utilities\n\n### `gh stack alias`\n\nСоздайте короткий псевдоним команды, чтобы можно было ввести меньше.\n\n```shell\ngh stack alias [flags] [name]\n```\n\nУстанавливает небольшой скрипт-оболочку, `~/.local/bin/` в который пересылает все аргументы `gh stack`. Псевдоним по умолчанию — `gs`это имя, но можно выбрать любое имя, передав его в качестве аргумента. После установки вместо него `gs push`можно запустить`gh stack push`.\n\nВ Windows автоматическое создание псевдонима не поддерживается. Команда выводит инструкции вручную по созданию пакетного файла или функции PowerShell.\n\n| Flag       | Описание                             |\n| ---------- | ------------------------------------ |\n| `--remove` | Удаление созданного ранее псевдонима |\n\n**Примеры:**\n\n```shell\n# Create the default alias (gs), so that \"gs push\" and \"gs view\" both work\ngh stack alias\n\n# Create a custom alias\ngh stack alias gst\n\n# Remove an alias\ngh stack alias --remove\ngh stack alias --remove gst\n```\n\n### `gh stack feedback`\n\nПоделитесь отзывом о `gh stack` расширении.\n\n```shell\ngh stack feedback [title]\n```\n\nОткрывает обсуждение в [репозитории gh-stack](https://github.com/github/gh-stack) , чтобы отправить отзыв. При необходимости можно указать название для записи обсуждения.\n\n**Примеры:**\n\n```shell\ngh stack feedback\ngh stack feedback \"Support for reordering branches\"\n```\n\n## Переменные среды\n\n| Variable                            | Values                                                                                                                                                                                                                                                                                                                                                             | Описание |\n| ----------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------- |\n| `GH_STACK_THEME`                    |                                                                                                                                                                                                                                                                                                                                                                    |          |\n| `auto`(по умолчанию), `light``dark` | Управляет цветовой палитрой интерактивных экранов для `submit`выходных `modify``view`данных команд и всех цветных команд. Цвета адаптируются к фону терминала автоматически. Установите эту переменную для принудительной светлой или темной палитры, если терминал не сообщает о своем фоновом режиме, что может произойти в некоторых SSH или `tmux` настройках. |          |\n\n```shell\n# Force the light palette for one command\nGH_STACK_THEME=light gh stack view\n```\n\n## Коды выхода\n\n| Код             | Значение                                                               |\n| --------------- | ---------------------------------------------------------------------- |\n| 0               | Success                                                                |\n| 1               | Общая ошибка                                                           |\n| 2               | Не в стеке или стеке не найден                                         |\n| 3               | Конфликт повторной базы данных                                         |\n| 4               |                                                                        |\n| GitHub Сбой API |                                                                        |\n| 5               | Недопустимые аргументы или флаги                                       |\n| 6               | Требуется диамбигуация, так как ветвь принадлежит нескольким стекам    |\n| 7               | Перебаза уже выполняется                                               |\n| 8               | Стек заблокирован другим процессом                                     |\n| 9               | Запросы на вытягивание с накоплением не включены для этого репозитория |\n| 10              | Изменение прерванного сеанса и требуется восстановление                |\n\n## Дополнительные материалы\n\n* [Запросы на вытягивание с накоплением](/ru/pull-requests/reference/stacked-pull-requests)\n* [Создание запросов на вытягивание с накоплением](/ru/pull-requests/how-tos/create-pull-requests/creating-stacked-pull-requests)\n* [Управление запросами на вытягивание с накоплением](/ru/pull-requests/how-tos/create-pull-requests/managing-stacked-pull-requests)\n* [Устранение неполадок с накоплением запросов на вытягивание](/ru/pull-requests/how-tos/merge-and-close-pull-requests/troubleshooting-stacked-pull-requests)"}