Observação
Esse recurso está em versão prévia pública e está sujeito a alterações.
A gh stack extensão para GitHub CLI criar e gerenciar pilhas de solicitações de pull do repositório local. Para obter uma introdução às pilhas, consulte Solicitações de pull empilhadas.
Installation
gh extension install github/gh-stack
A extensão requer GitHub CLI (gh) a versão 2.0 ou posterior.
Observação
A gh stack extensão usa sua GitHub CLI autenticação. Se você ainda não se autenticou, execute gh auth login.
Resumo do comando
| Command | Purpose |
|---|---|
gh stack init | Inicialize uma nova pilha no repositório atual. |
gh stack add | Adicione um novo branch sobre a pilha atual. |
gh stack view | Exiba a pilha atual. |
gh stack checkout | Confira um número de pilha por pilha, número de solicitação de pull, URL de solicitação de pull ou nome do branch. |
gh stack modify | Reestruturar interativamente a pilha atual. |
gh stack unstack | Remova uma pilha do rastreamento local e remova-a.GitHub |
gh stack submit | Efetue push de todos os branches e crie ou atualize as solicitações de pull e a pilha ativada GitHub. |
gh stack sync | Buscar, rebasear, efetuar push e sincronizar o estado da solicitação de pull em um único comando. |
gh stack rebase | Extraia do remoto e execute uma rebase em cascata na pilha. |
gh stack push | Envie por push os branches ativos na pilha atual para o remoto. |
gh stack link | Vincule solicitações de pull em uma pilha GitHub ativada sem acompanhamento local. |
gh stack merge | Mesclar uma ou mais solicitações de pull empilhadas ao mesmo tempo. |
gh stack switch | Alterne interativamente para outro branch na pilha. |
gh stack up | Mova-se para cima em direção à parte superior da pilha, longe do tronco. |
gh stack down | Mova-se para baixo em direção à parte inferior da pilha, em direção ao tronco. |
gh stack top | Vá para o topo da pilha. |
gh stack bottom | Vá para o fundo da pilha. |
gh stack trunk | Vá para a ramificação do tronco. |
gh stack alias | Crie um alias de comando curto para que você possa digitar menos. |
gh stack feedback | Compartilhe comentários sobre a gh stack extensão. |
Gerenciamento de pilhas
gh stack init
Inicialize uma nova pilha no repositório atual.
gh stack init [flags] [branches...]
Inicializa uma nova pilha localmente. No modo interativo (sem argumentos), o comando solicita um nome de branch e oferece o uso do branch atual como a primeira camada.
Quando você fornece nomes de branch explícitos, os branches existentes são adotados automaticamente e quaisquer branches ausentes são criados. O tronco usa como padrão o branch padrão do repositório, a menos que você o substitua por --base.
O comando é habilitado git rerere automaticamente para que as resoluções de conflitos sejam lembradas entre as rebases.
| Flag | Description |
|---|---|
-b, --base <branch> | Branch de tronco para a pilha (padrão para o branch padrão do repositório) |
Exemplos:
# Interactive — prompts for branch names
gh stack init
# Non-interactive — specify first branch upfront
gh stack init feature-auth
# Use a different trunk branch
gh stack init --base develop feature-auth
# Adopt or create multiple branches at once
gh stack init feature-auth feature-api feature-ui
gh stack add
Adicione um novo branch sobre a pilha atual.
gh stack add [flags] [branch]
Cria um novo branch no HEAD atual, adiciona-o à parte superior da pilha e faz o check-out. Você deve executar esse comando enquanto estiver no branch superior de uma pilha. Se você não fornecer um nome de branch, o comando solicitará um.
Opcionalmente, você pode preparar alterações e criar uma confirmação como parte do add fluxo. Quando você fornece -m sem um nome de branch explícito, o nome do branch é gerado automaticamente no formato de data e lesma, como 03-24-add_login.
| Flag | Description |
|---|---|
-A, --all | Preparar todas as alterações, incluindo arquivos não rastreados. Requer -m. |
-u, --update | Alterações de estágio somente em arquivos rastreados. Requer -m. |
-m, --message <string> | Criar uma confirmação com essa mensagem antes de criar o branch |
Observação
-A e -u são mutuamente exclusivos.
Exemplos:
# Create a branch by name
gh stack add api-routes
# Prompt for a branch name interactively
gh stack add
# Stage all changes, commit, and auto-generate the branch name
gh stack add -Am "Add login endpoint"
# Stage only tracked files, commit, and auto-generate the branch name
gh stack add -um "Fix auth bug"
# Commit already-staged changes and auto-generate the branch name
gh stack add -m "Add user model"
# Stage all changes, commit, and use an explicit branch name
gh stack add -Am "Add tests" test-layer
# Stage only tracked files, commit, and use an explicit branch name
gh stack add -um "Update docs" docs-layer
gh stack view
Exiba a pilha atual.
gh stack view [flags]
Mostra todos os branches na pilha, suas ordenações, links de solicitação de pull e a confirmação mais recente com um carimbo de data/hora relativo. A saída é canalizada por meio de um pager, que respeita GIT_PAGER ou PAGER, e usa less -Rcomo padrão .
| Flag | Description |
|---|---|
-s, --short | Saída compacta (somente nomes de branch) |
--json | Dados da pilha de saída como JSON |
Exemplos:
gh stack view
gh stack view --short
gh stack view --json
gh stack checkout
Confira uma pilha por seu número de pilha, um número de solicitação de pull, uma URL de solicitação de pull ou um nome de branch.
gh stack checkout [<stack-number> | <pr-number> | <pr-url> | <branch>]
Um número nu é interpretado primeiro como um número de solicitação de pull ou de pilha. Estes são identificadores com escopo de repositório mostrados na interface do GitHub usuário. Se nada corresponder ao número, ele será tentado como um nome de branch.
Quando você faz referência a uma pilha remota, o comando busca a pilha GitHub, puxa os branches e configura a pilha localmente. Se a pilha já existir localmente e corresponder, o comando mudará para o branch. Se as pilhas locais e remotas tiverem composições diferentes, você será solicitado a resolver o conflito.
Quando você fornece um nome de branch, o comando resolve-o somente em pilhas controladas localmente.
Quando você executa o comando sem argumentos em um terminal interativo, ele abre um seletor pesquisável listando cada pilha disponível para você, tanto as pilhas rastreadas localmente quanto as pilhas que existem apenas.GitHub Cada linha mostra o número da pilha, sua ramificação inferior e superior, branch base, uma barra de status resumindo quantas de suas solicitações de pull são mescladas, abertas, fechadas ou ainda não enviadas por push e se a pilha está disponível localmente ou apenas no remoto. Filtre com as guias All, Local e Remote ou digite / para pesquisar. Pilhas totalmente mescladas são omitidas. Selecionar uma pilha somente remota clona-a localmente antes de alternar para ela.
Exemplos:
# Check out a stack by its stack number
gh stack checkout 7
# Check out a stack by pull request number
gh stack checkout 42
# Check out a stack by pull request URL
gh stack checkout https://github.com/owner/repo/pull/42
# Check out a stack by branch name (local only)
gh stack checkout feature-auth
# Interactive — pick from all available stacks (local and remote)
gh stack checkout
gh stack modify
Reestruturar interativamente a pilha atual.
gh stack modify [flags]
Abre uma interface do usuário do terminal interativo para reestruturar uma pilha. Todas as alterações são preparadas na interface e aplicadas juntas quando você pressiona Ctrl+S. Não é possível modificar branches de solicitações de pull mescladas.
| Flag | Description |
|---|---|
--continue | Continuar depois de resolver conflitos |
--abort | Anular a sessão de modificação e restaurar a pilha para seu estado antes de executar o comando |
Pré-condições
O comando verifica essas condições antes de abrir a interface:
- Você deve ter uma pilha ativa marcada localmente.
- Sua árvore de trabalho deve estar limpa, sem alterações não confirmadas.
- Nenhuma rebase está em andamento.
- Nenhuma solicitação de pull na pilha está na fila para mesclagem.
- O histórico de confirmação deve ser linear, sem confirmações de mesclagem e sem ramificações divergentes.
Operations
| Operação | Key | Effect |
|---|---|---|
| Drop | ||
| x | Remova o branch e suas confirmações da pilha. O branch local e a solicitação de pull associada são preservados. | |
| Dobrar para baixo | ||
| d | Absorva confirmações no branch abaixo, em direção ao tronco. O branch dobrado é removido da pilha. | |
| Dobrar | ||
| u | Absorva as confirmações no branch acima, longe do tronco. O branch dobrado é removido da pilha. | |
| Inserir abaixo | ||
| i | Insira um novo branch vazio abaixo do cursor, em direção ao tronco. | |
| Inserir acima | ||
| I | Insira um novo branch vazio acima do cursor, longe do tronco. | |
| Mover para baixo | ||
| Turno+↓ | Reordene a ramificação para baixo, em direção ao tronco. | |
| Mover para cima | ||
| Turno+↑ | Reordene a ramificação para cima, longe do tronco. | |
| Rename | ||
| r | Renomeie o branch usando um prompt embutido. | |
| Undo | ||
| z | Desfazer a última ação em etapas. |
Fase de aplicação
Quando você pressiona Ctrl+S, as alterações em etapas são aplicadas renomeando branches, inserindo novos branches, dobrando ou soltando branches e executando uma rebase em cascata para criar um histórico de confirmação linear com o estado de pilha desejado.
Se ocorrer um conflito de rebase, você poderá:
- Resolva os conflitos, prepare os arquivos e execute
gh stack modify --continue. - Execute
gh stack modify --abortpara anular a operação e restaurar a pilha para seu estado anterior.
Depois de modificar
Se você já tiver criado uma pilha de solicitações de pull, GitHubexecute gh stack submit para enviar por push os branches atualizados e recriar a pilha. A pilha antiga é substituída automaticamente.
Exemplos:
# Open the interactive modify interface
gh stack modify
# Continue after resolving a conflict
gh stack modify --continue
# Abort and restore to the previous state
gh stack modify --abort
gh stack unstack
Remova uma pilha do rastreamento local e remova-a.GitHub Esse comando também está disponível como gh stack delete.
gh stack unstack [<stack-number>] [flags]
Sem argumento, o comando tem como destino a pilha ativa, que é a pilha que contém o branch de check-out atualmente. Ele descomprupa a pilha GitHub e remove o acompanhamento local.
Forneça um número de pilha, o identificador mostrado na interface do usuário da pilha, GitHubpara remover uma pilha específica. Isso funciona de qualquer lugar no repositório, se a pilha é ou não verificada localmente, porque a pilha é não saqueada diretamente por meio da GitHub API. Quando a pilha também está disponível localmente, seu acompanhamento local também é removido.
Solicitações de pull mescladas, mescladas ou enfileiradas para mesclagem não podem ser removidas de uma pilha GitHub ativada e permanecem parte da pilha. Quando cada solicitação de pull é removida, a pilha é dissolvida e qualquer rastreamento local é removido. Quando algumas solicitações de pull permanecem empilhadas, a pilha é mantida e o acompanhamento local, se houver, permanece inalterado. Use --local para ignorar a operação remota e remover apenas o acompanhamento local.
Esse comando é útil quando você precisa reestruturar uma pilha removendo um branch, inserindo um branch, reordenando branches, renomeando branches ou fazendo outras alterações grandes. Depois de desempilhar, use gh stack init para recriar a pilha com a estrutura desejada. As ramificações existentes são adotadas automaticamente.
| Flag | Description |
|---|---|
--local | Remova apenas a pilha localmente, mantendo-a ativada GitHub |
Exemplos:
# Unstack the current stack on GitHub and remove local tracking
gh stack unstack
# Unstack a specific stack by its number
gh stack unstack 7
# Only remove local tracking
gh stack unstack --local
Operações remotas
gh stack submit
Efetue push de todos os branches e crie ou atualize solicitações de pull e a pilha ativada GitHub.
gh stack submit [flags]
Cria uma solicitação de pull para cada branch na pilha, enviando ramificações por push para o remoto. Depois de criar solicitações de pull, submit cria automaticamente uma pilha GitHub para vincular as solicitações de pull. Se a pilha já existir GitHub, por exemplo, de um envio anterior, novas solicitações de pull serão adicionadas à pilha existente.
Se cada solicitação de pull na pilha já tiver sido mesclada, essa pilha será concluída e não poderá ser estendida. Nesse caso, submit inicia automaticamente uma nova pilha com raiz no tronco para seus branches não mesclados e a cria GitHub, deixando a pilha mesclada intocada.
Em um terminal interativo, submit abre um editor de tela inteira em uma única tela.
- Painel esquerdo. Cada branch sem uma solicitação de pull é incluído por padrão. Desmarque qualquer um que você não queira enviar com Ctrl+X. Como cada solicitação de pull se baseia no branch abaixo dele, a desmarcação de um branch também desmarca os empilhados acima dele e a re-inclusão de um branch inclui novamente os que dependem dele. Os branches que já têm uma solicitação de pull, seja aberto, rascunho, enfileirado ou mesclado, são mostrados para o contexto, mas estão bloqueados. Edite-os na Web.
- Painel direito. Para o branch focado, redigir o título e a descrição e escolher se a solicitação de pull abre pronta para revisão ou como um rascunho. A descrição é preenchida previamente do modelo de solicitação de pull do repositório ou confirmações, com uma visualização de markdown e uma
$EDITORescape. O foco de uma ramificação bloqueada mostra um cartão somente leitura com um link para sua solicitação de pull. Pressione o para abri-lo no navegador.
Pressione Ctrl+S para enviar todas as solicitações de pull incluídas ao mesmo tempo. O editor dá suporte à entrada de teclado e mouse. Passe --autoou execute o comando em um terminal não interativo, como CI, para ignorar o editor e usar títulos gerados automaticamente.
Se os branches já tiverem solicitações de pull abertas, mas nenhuma pilha existir GitHub, você terá a opção de vincular as solicitações de pull a uma pilha com Ctrl+B.
No editor, novas solicitações de pull padrão estão prontas para revisão. Você pode inverter qualquer solicitação de pull para rascunho com a alternância. Com --auto, novas solicitações de pull são criadas como rascunhos, a menos que você passe --open.
| Flag | Description |
|---|---|
--auto | Ignorar o editor e usar títulos de solicitação de pull gerados automaticamente |
--open | Criar novas solicitações de pull como prontas para revisão em vez de rascunhos e marcar solicitações de pull existentes como prontas para revisão |
--remote <name> | Remoto para o qual enviar por push (padrões para o remoto detectado automaticamente) |
Exemplos:
gh stack submit
gh stack submit --auto
gh stack submit --open
gh stack sync
Buscar, rebasear, efetuar push e sincronizar o estado da solicitação de pull em um único comando.
gh stack sync [flags]
Sincroniza toda a pilha.
- Buscar. Busca as alterações mais recentes de
origin. - Reconciliar a pilha remota. Espelha a pilha GitHub localmente. Quando as solicitações de pull foram adicionadas à pilha GitHub, para que o remoto esteja à frente da pilha local, suas ramificações são puxadas para baixo e acrescentadas à pilha local automaticamente. Quando as pilhas locais e remotas tiverem divergido genuinamente, por exemplo, porque você adicionou uma ramificação localmente enquanto diferentes solicitações de pull foram adicionadas à pilha GitHubativada, você será solicitado a resolver a diferença. Consulte pilhas divergentes. Em um terminal não interativo, uma divergência anula a sincronização e nada é enviado por push ou atualizado.
- Tronco de avanço rápido. Encaminha rapidamente o branch do tronco para corresponder ao remoto. Esta etapa será ignorada se os branches tiverem divergido.
- Rebase em cascata. Rebaseia todos os branches de pilha em seus pais atualizados, mas somente se o tronco for movido. Se um conflito for detectado, todos os branches serão restaurados para seu estado original e você será aconselhado a executar
gh stack rebasepara resolver conflitos interativamente. - Empurrar. Envia por push todos os branches, usando
--force-with-leasese ocorreu uma nova base. - Solicitações de pull de sincronização. Sincroniza o estado da solicitação de GitHub pull e relata o status de cada solicitação de pull.
- Sincronize a pilha. Vincula as solicitações de pull abertas da pilha em uma pilha GitHub, criando o objeto de pilha remota se ele ainda não existir ou atualizando-o se ele estiver parcialmente formado. Isso só acontece quando existem duas ou mais solicitações de pull. A sincronização nunca abre solicitações de pull. Use
gh stack submitpara isso. - Podar. Em terminais interativos, solicita que você exclua branches locais para solicitações de pull mescladas. Use
--prunepara podar automaticamente.
Uma atualização remota limpa, em que as solicitações de pull são adicionadas na parte superior da pilha local, é retirada automaticamente sem solicitação, portanto sync , é seguro executar na automação. A sincronização só é solicitada quando as pilhas realmente divergiram.
Pilhas divergentes
Quando nenhuma pilha é um prefixo limpo da outra, por exemplo, porque você adicionou uma ramificação localmente enquanto solicitações de pull separadas foram adicionadas à mesma pilha GitHub, a sincronização não pode mesclar as duas automaticamente. Em um terminal interativo, ele oferece três opções.
- Use a pilha remota como a fonte da verdade. Substitui a composição da pilha local pelos controles remotos, puxando os branches ausentes. Se você estava em um branch que a pilha remota não contém mais, você é movido para o branch sobrevivente mais próximo. Isso requer um estado de trabalho limpo sem alterações não confirmadas.
- Exclua a pilha em GitHub. Exclui o objeto GitHub de pilha e interrompe a sincronização. Suas solicitações de pull e branches locais não são intocadas e somente a pilha ativada GitHub é removida. Recrie a pilha com
gh stack submit, executandogh stack modifyprimeiro se você quiser alterar sua estrutura. Essa é a maneira de fazer GitHub a correspondência com sua pilha local, poissubmit, ao contráriosync, também cria solicitações de pull para quaisquer branches que você ainda não enviou. - Cancelar. Anula a sincronização sem enviar branches por push ou atualizar nenhuma solicitação de pull.
Em um terminal não interativo, uma divergência anula a sincronização, saindo com êxito, sem enviar branches por push ou atualizar solicitações de pull. Resolva-o descompilhando e recriando a pilha.
| Flag | Description |
|---|---|
--remote <name> | Remoto para buscar e enviar por push (padrões para o remoto detectado automaticamente) |
--prune | Excluir branches locais para solicitações de pull mescladas |
Exemplos:
gh stack sync
# Sync and automatically prune merged branches
gh stack sync --prune
gh stack rebase
Extraia do remoto e execute uma rebase em cascata na pilha.
gh stack rebase [flags] [branch]
Busca as alterações mais recentes de, em seguida, garante que cada branch na pilha tenha a ponta da camada anterior em seu histórico de originconfirmação. Os branches são rebasados em ordem, do tronco para cima.
Se a solicitação de pull de uma ramificação tiver sido mesclada, a rebase alterna automaticamente para --onto o modo para reproduzir corretamente as confirmações na parte superior do destino de mesclagem.
Se ocorrer um conflito de rebase, a operação pausa e imprime os arquivos conflitantes com números de linha. Resolva os conflitos, prepare-os e git addcontinue com --continue. Para desfazer toda a rebase, use --abort para restaurar todos os branches para seu estado antes da rebase.
| Flag | Description |
|---|---|
--downstack | Somente rebase branches do tronco para o branch atual |
--upstack | Somente rebase branches do branch atual para a parte superior |
--no-trunk | Pule o tronco. Somente rebasear branches de pilha uns nos outros, sem busca e sem rebase de tronco. |
--continue | Continuar a rebase após resolver conflitos |
--abort | Anular a rebase e restaurar todos os branches para seu estado antes da rebase |
--remote <name> | Remoto para buscar (padrões para o remoto detectado automaticamente) |
--committer-date-is-author-date | Defina a data do committer como a data do autor durante a rebase. Alias: --preserve-dates. |
| Argument | Description |
|---|---|
[branch] | Branch de destino (padrão para o branch atual) |
Exemplos:
# Rebase the entire stack
gh stack rebase
# Only rebase branches below the current one
gh stack rebase --downstack
# Only rebase branches above the current one
gh stack rebase --upstack
# Rebase stack branches without pulling from or rebasing with trunk
gh stack rebase --no-trunk
# After resolving a conflict
gh stack rebase --continue
# Abort rebase and restore everything
gh stack rebase --abort
# Rebase and preserve committer date as author date
gh stack rebase --committer-date-is-author-date
gh stack push
Envie por push os branches ativos na pilha atual para o remoto.
gh stack push [flags]
Envia por push cada branch ativo, excluindo branches mesclados e enfileirados, em um único git push, usando uma verificação explícita por branch --force-with-lease . A atualização não é atômica. Branches cujas concessões são aprovadas podem ser atualizadas mesmo se outra ramificação for rejeitada. Corrija o branch rejeitado e execute o comando novamente. As ramificações que já foram atualizadas permanecem inalteradas. Esse comando não cria nem atualiza solicitações de pull. Use gh stack submit para isso.
| Flag | Description |
|---|---|
--remote <name> | Remoto para o qual enviar por push (padrões para o remoto detectado automaticamente) |
Exemplos:
gh stack push
gh stack push --remote upstream
gh stack link
Vincule solicitações de pull em uma pilha GitHub ativada sem acompanhamento local.
gh stack link [flags] <stack-number | branch-or-pr> <branch-or-pr> [...]
Cria ou atualiza uma pilha com base em GitHub nomes de branch ou números de solicitação de pull e URLs. Esse comando não cria nem modifica nenhum estado de acompanhamento local. Ele foi projetado para pessoas que gerenciam branches com outras ferramentas localmente, como Jujutsu, Sapling ou git-town, e deseja abrir uma pilha de solicitações de pull. Consulte Usar outras ferramentas com solicitações de pull empilhadas.
Você fornece argumentos em ordem de pilha, de baixo para cima. Os argumentos de ramificação são enviados automaticamente para o remoto antes que as solicitações de pull sejam criadas ou pesquisadas. Para branches que já têm solicitações de pull abertas, essas solicitações de pull são usadas. Para branches sem solicitações de pull, novas solicitações de pull são criadas automaticamente com o encadeamento de branch base correto. As solicitações de pull existentes cujo branch base não corresponde à cadeia esperada são corrigidas automaticamente.
Se as solicitações de pull ainda não estiverem em uma pilha, uma nova pilha será criada. Se algumas das solicitações de pull já estiverem em uma pilha, a pilha existente será atualizada para incluir as novas solicitações de pull. As solicitações de pull existentes nunca são removidas de uma pilha, pois a atualização é somente aditiva.
Para aumentar uma pilha existente sem listar suas solicitações de pull novamente, passe um número de pilha, o número mostrado na interface do usuário da pilha ativada GitHub, como o primeiro argumento. Os argumentos restantes são acrescentados à parte superior dessa pilha. Os argumentos que já estão na pilha são ignorados e os argumentos que pertencem a uma pilha diferente são rejeitados. Como os números de solicitação de pilha e pull nunca se sobrepõem, um primeiro argumento numérico é tratado como uma pilha somente quando corresponde a uma pilha existente. Caso contrário, ele será tratado como uma solicitação de pull ou branch.
| Flag | Description |
|---|---|
--base <branch> | Branch base para a parte inferior da pilha (padrão para o branch padrão do repositório). Esse sinalizador é ignorado quando você adiciona a uma pilha existente. |
--open | Marcar solicitações de pull novas e existentes como prontas para revisão |
--remote <name> | Remoto para o qual enviar por push (padrões para o remoto detectado automaticamente) |
Exemplos:
# Link branches into a stack (pushes, creates pull requests, creates stack)
gh stack link feature-auth feature-api feature-ui
# Link existing pull requests by number
gh stack link 10 20 30
# Link existing pull requests by URL
gh stack link https://github.com/owner/repo/pull/10 https://github.com/owner/repo/pull/20
# Add branches to an existing stack of pull requests
gh stack link 42 43 feature-auth feature-ui
# Append to the top of an existing stack by its stack number, with no need
# to list the pull requests already in stack 7 again
gh stack link 7 48 feature-ui
# Use a different base branch and mark pull requests as ready for review
gh stack link --base develop --open feat-a feat-b feat-c
gh stack merge
Mesclar uma ou mais solicitações de pull empilhadas ao mesmo tempo.
gh stack merge [<stack-number> | <pr-number>]
Mescla cada solicitação de pull na pilha, até e incluindo a solicitação de pull escolhida, no branch base. A mesclagem é uma única operação de tudo ou nada. Se qualquer solicitação de pull não puder ser mesclada, nenhuma delas será mesclada.
Sem argumento, o comando usa a pilha local ativa. Forneça um número de pilha para mesclar uma pilha que você não fez check-out, que é uma operação puramente remota, ou forneça um número de solicitação de pull para mesclar diretamente a essa solicitação de pull.
Em um terminal interativo, o comando solicita que você escolha quais solicitações de pull mesclar, escolher o método de mesclagem e confirmar. Em um terminal não interativo ou quando você usa --yes, a pilha inteira ou tudo até a solicitação de pull especificada é mesclado sem solicitação, usando o método de mesclagem usado pela última vez, a menos que você especifique um.
Somente o estado básico da solicitação de pull é verificado antes da mesclagem. Cada solicitação de pull deve estar aberta e não deve ser um rascunho. GitHub avalia as regras de proteção e repositório de branch quando a mesclagem é executada e qualquer falha é relatada de volta a você.
Observação
Você não pode ignorar os requisitos de mesclagem ao mesclar solicitações de pull empilhadas.
Se o branch base usar uma fila de mesclagem, a pilha será adicionada à fila em vez de ser mesclada diretamente. A fila escolhe o método de mesclagem, de modo que o prompt ignora a etapa do método de mesclagem e os --merge-method``--squash``--rebase``--merge sinalizadores são ignorados com um aviso. As solicitações de pull selecionadas são adicionadas à fila juntas, mas elas se mesclam à medida que a fila as processa, para que possam chegar em grupos separados, em vez de tudo de uma vez.
| Flag | Description |
|---|---|
--merge-method <method> | Método de mesclagem a ser usado: merge, squashou rebase |
--merge, , --squash``--rebase | Taquigrafias para o método de mesclagem correspondente |
-y, --yes | Mesclar sem solicitar confirmação |
Exemplos:
# Merge the current stack, choosing pull requests interactively
gh stack merge
# Merge a stack you do not have checked out, by stack number
gh stack merge 7
# Merge everything up to and including pull request 42
gh stack merge 42
# Merge the whole current stack without prompting, squashing commits
gh stack merge --yes --squash
Navigation
Os comandos de navegação movem você entre branches na pilha atual sem precisar lembrar nomes de branch. A parte inferior da pilha é a ramificação mais próxima do tronco e a parte superior é a ramificação mais distante dela.
up se afasta do tronco e down se move em direção a ele.
Todos os comandos de navegação são fixados nos limites da pilha. Mover-se para cima da parte superior ou para baixo da parte inferior não faz nada e exibe uma mensagem.
gh stack switch
Alterne interativamente para outro branch na pilha.
gh stack switch
Mostra um seletor interativo listando todos os branches na pilha atual, ordenados de cima, mais distantes do tronco, para baixo, mais próximos do tronco, com o número de posição. Selecione uma ramificação para fazer check-out.
Esse comando requer um terminal interativo.
Exemplos:
gh stack switch
# → Select a branch in the stack to switch to
# 5. frontend
# 4. api-endpoints
# 3. auth-layer
# 2. db-schema
# 1. config-setup
gh stack up
Mova-se para cima em direção à parte superior da pilha, longe do tronco.
gh stack up [n]
Move ramificações para cima n , com o padrão como 1. Se você estiver no branch do tronco, up moverá para o primeiro branch de pilha.
Exemplos:
# Move up one layer
gh stack up
# Move up three layers
gh stack up 3
gh stack down
Mova-se para baixo em direção à parte inferior da pilha, em direção ao tronco.
gh stack down [n]
Move ramificações para baixo n , com o padrão como 1.
Exemplos:
# Move down one layer
gh stack down
# Move down two layers
gh stack down 2
gh stack top
Vá para o topo da pilha.
gh stack top
Verifica a ramificação mais distante do tronco.
gh stack bottom
Vá para o fundo da pilha.
gh stack bottom
Verifica a ramificação mais próxima do tronco.
gh stack trunk
Vá para a ramificação do tronco.
gh stack trunk
Verifica o branch do tronco da pilha atual, como main. Você deve estar em um branch que faz parte de uma pilha.
Utilities
gh stack alias
Crie um alias de comando curto para que você possa digitar menos.
gh stack alias [flags] [name]
Instala um script de wrapper pequeno no ~/.local/bin/ qual encaminha todos os argumentos para gh stack. O nome do alias padrão é gs, mas você pode escolher qualquer nome passando-o como um argumento. Após a instalação, você pode executar gs push em vez de gh stack push.
Em Windows, não há suporte para a criação automática de alias. O comando imprime instruções manuais para criar um arquivo em lote ou uma função do PowerShell.
| Flag | Description |
|---|---|
--remove | Remover um alias criado anteriormente |
Exemplos:
# Create the default alias (gs), so that "gs push" and "gs view" both work
gh stack alias
# Create a custom alias
gh stack alias gst
# Remove an alias
gh stack alias --remove
gh stack alias --remove gst
gh stack feedback
Compartilhe comentários sobre a gh stack extensão.
gh stack feedback [title]
Abre uma discussão no repositório de gh-stack para que você possa enviar comentários. Opcionalmente, você pode fornecer um título para a postagem de discussão.
Exemplos:
gh stack feedback
gh stack feedback "Support for reordering branches"
Variáveis de ambiente
| Variable | Valores | Description |
|---|---|---|
GH_STACK_THEME | ||
auto (padrão), light, dark | Controla a paleta de cores das telas interativas para submit, modifye view, e todas as saídas de comando coloridas. As cores se adaptam automaticamente ao plano de fundo do terminal. Defina essa variável para forçar a paleta clara ou escura quando um terminal não relatar sua tela de fundo, o que pode acontecer em algumas configurações ou tmux SSH. |
# Force the light palette for one command
GH_STACK_THEME=light gh stack view
Códigos de saída
| Code | Meaning |
|---|---|
| 0 | Êxito |
| 1 | Erro genérico |
| 2 | Não em uma pilha ou pilha não encontrada |
| 3 | Rebasear conflito |
| 4 | |
| GitHub Falha na API | |
| 5 | Argumentos ou sinalizadores inválidos |
| 6 | Desambiguação necessária, pois o branch pertence a várias pilhas |
| 7 | Rebase já em andamento |
| 8 | A pilha está bloqueada por outro processo |
| 9 | As solicitações de pull empilhadas não estão habilitadas para este repositório |
| 10 | Modificar a sessão interrompida e a recuperação é necessária |