Gostaria de verificar uma solicitação de recebimento criada anteriormente (criada via interface da web do GitHub). Pesquisei e encontrei lugares diferentes onde um refs / pull ou refs / pull / pr
Mas quando adiciono fetch = +refs/pull/*/head:refs/remotes/origin/pr/*
ao arquivo de configuração git e faço uma busca git
O que estou fazendo de errado? O GitHub deve criar automaticamente o material pull / xyz ou preciso configurar algo?
git
github
pull-request
git-checkout
GarfieldKlon
fonte
fonte
Respostas:
Para buscar um PR remoto em seu repositório local,
onde
ID
é o ID da solicitação de recebimento eBRANCHNAME
é o nome da nova ramificação que você deseja criar. Depois de criar a ramificação, bastaVeja a documentação oficial do GitHub para mais.
fonte
git fetch origin pull/1/head:githubusername
, não o que eu estava esperandoBRANCHNAME
é o nome que você deseja nomear o ramo. Suponho que você tentou usar um nome que já existia (por exemplomaster
) e que não funcionava, então você tentou seu nome de usuário, que funcionou, porque não havia ramificação com esse nome. Talvez eu entenda mal o que você estava dizendo.origin
aponta para o seu fork eupstream
- para o repositório original (seguindo help.github.com/articles/configuring-a-remote-for-a-fork , por exemplo). Certifique-se de alterarorigin
paraupstream
no comando mencionado, se desejar buscar a solicitação pull do repositório original.Isso será buscado sem que você precise nomear um ramo:
Como obtenho uma solicitação de recebimento específica na minha máquina?
fonte
Essa essência descreve o que aconteceu quando você faz uma busca por git:
Você tem vários scripts listados nos problemas 259 para automatizar essa tarefa.
O projeto git-extras propõe o comando
git-pr
(implementado no PR 262 )git-pr
(1) - Confira uma solicitação de recebimento localmentefonte
Prefiro buscar e efetuar o checkout sem criar uma filial local e estar no estado destacado HEAD . Ele permite que eu verifique rapidamente a solicitação de recebimento sem poluir minha máquina local com ramificações locais desnecessárias.
git fetch upstream pull/ID/head && git checkout FETCH_HEAD
onde
ID
é um ID de solicitação de recebimento eupstream
onde a solicitação de recebimento original foi criada (pode serorigin
, por exemplo).Espero que ajude.
fonte
Fazendo referência à resposta de Steven Penny, é melhor criar um ramo de teste e testar o PR. Então aqui está o que você faria.
git checkout -b test
git pull origin pull/939/head:test
Agora, você pode testar com segurança as alterações nesse ramo de teste local (neste caso, denominado teste ) e, quando estiver satisfeito, poderá mesclá-lo como de costume no GitHub.
fonte
test
ramificação e ENTÃO puxaria o PR - dessa maneira não preciso restaurar ramificações localmente quando terminar; Acabei de descartar a árvore de trabalho. Na verdade, NUNCAcheckout -b
mais - sempre crio uma árvore de trabalho e depois ramifico. Disco é barato. Claro, eu tenho um script que faz isso; Não digito todo o comando necessário individualmente.Se você estiver usando o Github.com, vá para "Solicitações de recebimento", clique na solicitação de recebimento relevante e clique no link "instruções da linha de comando":
fonte
Você pode usar o
git config
comando para escrever uma nova regra.git/config
para buscar solicitações pull do repositório:E então apenas:
fonte
O problema com algumas das opções acima é que, se alguém enviar mais confirmações ao PR após abrir o PR, elas não fornecerão a versão mais atualizada. Para mim, o que funcionou melhor - vá para o PR e pressione 'Commits', role para baixo para ver o hash de commit mais recente e, em seguida, simplesmente use git checkout, ou seja,
git checkout <commit number>
no exemplo acima
git checkout 0ba1a50
fonte
git fetch origin pull/ID/head:BRANCHNAME
abordagem mencionada em stackoverflow.com/a/30584951/659732 . Obrigado pela solução!Estou usando o hub, uma ferramenta do github: https://github.com/github/hub
Com o hub, verificar uma solicitação localmente é meio fácil:
fonte
Para Bitbucket, você precisa substituir a palavra
pull
parapull-requests
.Primeiro, você pode confirmar o estilo do URL da solicitação de recebimento por
git ls-remote origin
comando.Como você pode ver, é em
refs/pull-requests/1503/from
vez derefs/pull/1503/from
Então você pode usar os comandos de qualquer uma das respostas.
fonte
Acidentalmente, acabei escrevendo quase o mesmo que o fornecido pelo git-extras. Portanto, se você preferir um único comando personalizado, em vez de instalar vários outros comandos extras, basta colocar esse
git-pr
arquivo em algum lugar no seu$PATH
e, em seguida, basta escrever:fonte
Se você estiver seguindo o fluxo de trabalho "garfo do github", crie um garfo e adicione o repositório remoto upstream:
Para acessar sua ramificação atual, seu comando seria semelhante a:
Para entrar em uma nova ramificação, o código seria semelhante a:
fonte
O Github lançou recentemente um utilitário cli chamado github-cli . Depois de instalá-lo, você pode fazer o checkout local de uma ramificação de solicitação pull usando seu ID
por exemplo:
gh pr checkout 2267
Observe que este pacote ainda está na versão beta
fonte
Coloque a filial remota do PR na filial local:
git fetch origin ‘remote_branch’:‘local_branch_name’
Defina o upstream da filial local como filial remota.
git branch --set-upstream-to=origin/PR_Branch_Name local_branch
Quando você deseja enviar novamente as alterações locais para a ramificação PR
git push origin HEAD:remote_PR_Branch_name
fonte
Suponha que suas informações de origem e upstream sejam como abaixo
e o nome do seu ramo é como
então
deve fazer o trabalho
fonte
Se as confirmações deles estiverem no ramo principal do repositório bifurcado, você poderá fazer o seguinte.
fonte