O maior lançamento do GitHub em anos. Stacked PRs.
BBetter Stack
Computing/SoftwareInternet Technology
Transcript
00:00:00O GitHub acaba de lançar sua maior atualização em anos, as PRs em pilha (stacked PRs), uma nova forma de dividir
00:00:05PRs gigantescas em partes mais fáceis de gerenciar. Neste vídeo, vamos ver exatamente o que elas são
00:00:10e por que você as usaria. As PRs em pilha são um conceito poderoso, mas bastante simples. Dividir grandes alterações de código
00:00:21em uma cadeia de pull requests menores e dependentes. Você pode revisar e mesclar de forma independente.
00:00:26Para ter uma pilha, você precisa de duas ou mais pull requests no mesmo repositório, onde a primeira
00:00:31ou a pull request inferior aponta para o tronco, geralmente o branch padrão do seu repositório, como o main,
00:00:37então cada pull request subsequente aponta para a anterior. Isso forma uma cadeia de dependência onde
00:00:42cada branch se baseia na que está abaixo dele. Alterações fundamentais, como tipos compartilhados ou esquemas de banco de dados,
00:00:48ficam nos branches inferiores, e o código que depende delas, como rotas de API e componentes de UI,
00:00:53fica nos branches superiores. E você pode estar pensando: “Bem, eu sempre pude fazer isso, não é?”
00:00:58Eu poderia abrir uma PR para o main e depois abrir uma segunda PR para essa PR e encadear as PRs o quanto eu quiser.
00:01:04E isso é absolutamente verdade, porque no contexto apenas do Git, não existe o conceito de PRs em pilha
00:01:09e você ainda estaria apenas encadeando PRs juntas. Apenas dentro do próprio GitHub é que as PRs em pilha
00:01:16realmente significam algo. Mas elas trazem algumas vantagens enormes. E se você quiser ficar por dentro
00:01:22de tecnologia e IA, inscreva-se no Better Stack. Então, para usar as PRs em pilha, é melhor ter
00:01:27o CLI do GitHub instalado. E com ele, você pode executar gh stack init e então declarar sua nova pilha.
00:01:33Então vamos ao nosso editor de texto e agora podemos ver um exemplo de como empilhar várias PRs.
00:01:38Portanto, a primeira coisa que vamos fazer é executar gh stack init setup database. Então, neste caso,
00:01:44a PR ou o branch vai se chamar setup database. E esta será a PR base que agora
00:01:50vai apontar para o main. Depois podemos fazer nossas alterações. Para este exemplo, vou apenas colocar
00:01:54alterações no arquivo readme. Então eu disse que implementei o banco de dados e depois você pode apenas fazer git add,
00:01:59git commit. Então tudo aqui é apenas git padrão. E quando você estiver pronto para mudar para o seu próximo conjunto
00:02:04de alterações, você pode fazer gh stack add e depois o seu próximo branch. Então posso fazer mais alterações,
00:02:10criar os endpoints da API. Talvez eu queira adicionar alguns pontos extras aqui. Então vou comitar essa alteração.
00:02:16Então podemos adicionar uma segunda alteração também. E então, novamente, podemos comitar isso. Como você esperaria,
00:02:20você pode fazer vários commits por branch. E por fim, faremos gh stack add setup front end,
00:02:25e então faremos mais uma alteração aqui. E de novo, fazemos git add e git commit. Agora, uma vez que estejamos satisfeitos
00:02:31com todas as nossas alterações e quisermos enviar todos esses branches para o GitHub ao mesmo tempo,
00:02:36podemos executar apenas um comando: gh stack submit. Isso nos dará esta mini interface de CLI onde podemos
00:02:42passar por cada uma das PRs na pilha e adicionar um título e uma descrição, se quisermos. Ou podemos
00:02:48apenas pressionar próximo em cada uma e enviar três PRs de uma só vez. Então você pode ver que todas essas três PRs,
00:02:55setup database, API e front end, foram enviadas para o GitHub como uma pilha com um único comando.
00:03:02E você pode fazer tudo isso sem o CLI do GitHub. Basta seguir o método tradicional de
00:03:07vincular PRs manualmente de main para PR1 e para PR2. O GitHub ainda vai detectar essas como uma pilha
00:03:14assim que você enviar tudo. O CLI apenas torna isso muito mais fácil de gerenciar. Agora, lembre-se de que nada
00:03:20mudou dentro do próprio Git. Se você quiser mudar para um branch completamente diferente que não esteja na
00:03:24pilha em que você está trabalhando, você pode fazer isso e depois voltar para o branch dentro da pilha mais tarde.
00:03:29Se formos agora para o próprio GitHub, você pode ver que temos cada uma de nossas três PRs abertas
00:03:34como pull requests aqui. E você pode ver que também temos este pequeno ícone de pilha para nos indicar que essas
00:03:39PRs estão associadas a uma pilha. Se abriremos a PR superior, ou seja, a que está no topo da pilha, você pode
00:03:45ver aqui embaixo que podemos clicar em merge stack e ver esta interface também. Assim podemos ver cada
00:03:49PR como parte da pilha. Poderíamos analisar e aprovar uma a uma. Mas uma vez que estejamos satisfeitos com
00:03:54tudo isso, você pode simplesmente clicar em merge stack e cada uma dessas PRs será mesclada
00:03:59no main ao mesmo tempo. Você também notará que as referências a pilhas agora estão integradas
00:04:03em todo o GitHub. Então você pode vê-las na página de pull request, na página de lista
00:04:09de pull requests. Você também as verá em coisas como GitHub workflows e, na verdade, em todo o aplicativo.
00:04:14Portanto, se você está trabalhando em PRs gigantescas e precisa de uma maneira fácil de dividi-las
00:04:18em segmentos separados, você não precisa mais esperar que PRs separadas sejam mescladas no main
00:04:23e fazer todo o rebase e a mesclagem sozinho. Você pode criar apenas uma pilha longa e o GitHub
00:04:28agora está perfeitamente equipado para gerenciar tudo isso dentro da interface. E o CLI é uma forma muito legal
00:04:33de gerenciar tudo isso automaticamente. Tem havido uma resposta extremamente positiva a isso
00:04:38online. E particularmente quando usado com IA, acho que isso pode ser um recurso muito poderoso
00:04:43quando você faz coisas como projetar loops de agentes e deixa o agente rodar por horas. Ele agora pode criar
00:04:48PRs em pilha e vincular todo esse trabalho em vez de criar uma PR gigante ou montes
00:04:54de PRs completamente separadas. Mas espero que tenham achado este útil, pessoal. Me digam o que acham
00:04:58das PRs em pilha nos comentários e se inscrevam no Better Stack para ficarem por dentro das últimas
00:05:02novidades de tecnologia e IA. Obrigado por assistirem e, claro, vejo vocês na próxima.