Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.
Versão do artigo: Enterprise Server 2.20

Fazer checkout de pull requests no local

Quando alguém envia a você uma pull request de uma bifurcação ou um branch do seu repositório, talvez você queira fazer merge dela no local para resolver um conflito de merge ou para testar e verificar as alterações antes de fazer merge no GitHub Enterprise.

Qualquer pessoa com acesso de gravação a um repositório pode derrubar uma pull request remota localmente.

Neste artigo

Observação: Autores de pull request podem fornecer a mantenedores do repositório upstream, ou àqueles com acesso push para o repositório upstream, permissão para fazer commits no branch de comparação de sua pull request em uma bifurcação de propriedade de usuário. Para obter mais informações, consulte "Permitir alterações no branch de uma pull request criada de uma bifurcação".

Modificar uma pull request ativa no local

  1. Under your repository name, click Pull requests.
    Problemas e seleção da guia pull requests
  2. Na lista de pull requests, clique na pull request que você gostaria de modificar.
  3. Na caixa de merge, clique em instruções para linha de comando. Siga a sequência de etapas para rebaixar a pull request proposta.
    Link para acessar instruções de pull request da linha de comando
  4. Como opção, para exibir as alterações propostas no GitHub Desktop, clique em abrir em GitHub Desktop.
    Link para abrir uma pull request localmente no Desktop

Modificar uma pull request inativa no local

Se o autor de uma pull request não responde às solicitações ou excluiu sua bifurcação, a pull request ainda poderá ser mesclada. No entanto, se quiser fazer alterações em uma pull request e o autor não estiver respondendo, será preciso executar algumas etapas adicionais para atualizar a pull request.

Depois que uma pull request for aberta, GitHub Enterprise armazena todas as alterações remotamente. Em outras palavras, os commits em uma pull request estão disponíveis em um repositório mesmo antes da pull request sofrer merge. Isso significa que é possível fazer fetch de uma pull request aberta e recriá-la como sua própria.

Qualquer pessoa pode abrir uma pull request anteriormente aberta para continuar trabalhando nela, testá-la ou, até mesmo, abrir uma nova pull request com alterações adicionais. No entanto, somente colaboradores com acesso push podem fazer merge de pull requests.

  1. Under your repository name, click Issues or Pull requests.
    Problemas e seleção da guia pull requests
  2. Na lista "Pull Requests", clique na pull request da qual deseja fazer merge.
  3. Encontre o número da ID da pull request inativa. Essa é a sequência de dígitos certa após o título da pull request.
    Número da ID de pull requests
  4. Abra TerminalTerminalGit Bash.
  5. Faça fetch da referência à pull request com base no número da ID, criando um branch no processo.
    $ git fetch origin pull/ID/head:BRANCHNAME
  6. Alterne para o novo branch que se baseia nesta pull request:
    [master] $ git checkout BRANCHNAME
    > Alternado para um novo branch 'BRANCHNAME'
  7. Nesse ponto, você pode fazer qualquer coisa que desejar com este branch. É possível executar alguns testes locais, ou fazer merge de outros branches nele, incluindo o master.
  8. Quando estiver pronto, você poderá fazer push do novo branch:
    [pull-inactive-pull-request] $ git push origin BRANCHNAME
    > Counting objects: 32, done.
    > Delta compression using up to 8 threads.
    > Compressing objects: 100% (26/26), done.
    > Writing objects: 100% (29/29), 74.94 KiB | 0 bytes/s, done.
    > Total 29 (delta 8), reused 0 (delta 0)
    > To https://hostname/username/repository.git
    >  * [new branch]      BRANCHNAME -> BRANCHNAME
  9. Crie uma pull request com seu novo branch.

Erro: falha ao fazer push de algumas refs

O namespace refs/pull/ remoto é somente leitura. Se você tentar fazer push de qualquer commit nele, este erro será exibido:

! [remote rejected] HEAD -> refs/pull/1/head (deny updating a hidden ref)
error: failed to push some refs to 'git@github.local:USERNAME/REPOSITORY.git'

Dica: ao remover ou renomear uma referência remote, seu namespace refs/pull/origin/ local não será afetado pelas chamadas a git-remote.

Pergunte a uma pessoa

Não consegue encontrar o que procura?

Entrar em contato