Eu gostaria de clonar um repositório do GitHub. O problema é que eu não quero o ramo principal; Quero a versão nesta solicitação de recebimento não aprovada .
É possível clonar a versão da solicitação de recebimento em vez do repositório principal?
git
github
pull-request
Fresheyeball
fonte
fonte
clone
mas afetch
ver: stackoverflow.com/questions/6743514/…Respostas:
Você pode clonar a ramificação desejada usando a
-b
opção e a solicitação pull:No seu caso, a ramificação que você deseja clonar é a ramificação de origem da solicitação pull (
feature/mongoose-support
):fonte
A maneira mais fácil de fazer isso é assim:
Agora você estará em uma nova ramificação que está no estado da solicitação de recebimento.
Você pode configurar um alias executando
Agora você pode fazer o checkout de qualquer PR executando
git pr <pr_number>
, ougit pr <pr_number> <remote>
se o seu github remote não tiver esse nomeorigin
.fonte
git fetch origin pull/<#>/head:<local_branch_name>
( via ).gitconfig
arquivo sob[alias]
:pr = "!f() { git fetch $1 pull/$2/head:pull_$2; git co pull_$2; }; f"
. Dessa forma, basta digitargit pr upstream 62
e, em seguida, sei que estou em um novo ramo da PR # 62 a montante! Se você sempre usa,origin
pode codificá-lo em vez de$1
, mas isso muda para mim.co
por exemplo:
Faça alterações, confirme com elas, PUSH e abra um novo PR do seu fork no GitHub
fonte
Você pode seguir as instruções nesta lista para poder verificar o controle remoto diretamente sem precisar descobrir seu repositório e ramificação.
Exemplo de uso
Para um dos meus projetos (github3.py), tenho o seguinte no meu
github3.py/.git/config
A primeira linha é o padrão para cada controle remoto, com a exceção
github
substituída pelo nome do controle remoto. O que isso significa é que os chefes remotos (ou os chefes das filiais nesse servidor) são "mapeados" para controles remotos locais prefixados porgithub/
. Então, se eu fizgit fetch github
e tinha uma filial no GitHub que já não foi notado localmente na minha máquina, seria baixar o ramo e eu poderia mudar para ele assim:git checkout -t github/branch_name
.A segunda linha faz a mesma coisa, mas faz para solicitações pull em vez de ramos git padrão. É por isso que você vê
refs/pull/*/head
. Ele busca o cabeçalho de cada solicitação pull no GitHub e o mapeiagithub/pr/#
. Portanto, se alguém enviar uma solicitação pull e estiver numerada 62 (por exemplo), você faria:E então você estaria em uma filial local chamada
pr/62
(assumindo que ela ainda não existisse). É legal e significa que você não precisa acompanhar os controles ou ramificações de outras pessoas.fonte
git clone https://github.com/berstend/frappe.git -b feature/mongoose-support /my_clone
o documento principal.git fetch github
pode, então você podegit co -t github/pr/#
. Isso evita que você precise copiar e colar o URL remoto, descobrir o nome do ramo, etc. Você recebe nomes de galhos bem nomeados, concisos e precisos, sem o incômodo extra. Mas eu entendo que isso pode parecer esmagador.Como posso buscar uma solicitação pull não imergida para uma ramificação que não possuo?
fonte
git pull
cria uma mesclagem na ramificação atual; geralmente para um PR que você deseja obter apenasgit fetch
o código do autor original (ele fica acessível como FETCH_HEAD). Se você deseja uma mesclagem, vale a pena mencionarpull/2/merge
(em vez depull/2/head
) - isso faz com que o GitHub lhe dê o commit de mesclagem exato que aconteceria se você clicasse no botão [Mesclar] agora.Quando um usuário envia uma solicitação de recebimento, está solicitando que algumas alterações sejam mescladas de uma ramificação no clone de uma bifurcação para o repositório de outro usuário.
As alterações desejadas podem ser obtidas na origem da solicitação de recebimento. Para fazer isso, clone o repositório do usuário (
git://github.com/berstend/frappe.git
) e verifique a ramificação na qual ele criou a solicitação pull (feature/mongoose-support
).fonte
Depois de instalar o git-extras
Você pode simplesmente usar
git pr
fonte
Com a nova interface de linha de comando oficial do Github :
onde
44
é o número PR, mas também pode ser o nome da filial.Veja detalhes adicionais e opções e instruções de instalação .
fonte
Essa solicitação de recebimento mostra as confirmações do fork da pessoa para que você possa ver que ele está enviando as alterações da
feature/mongoose-support
ramificação.Você pode clonar seu repositório e fazer checkout desse ramo
fonte
Para mim, era tão simples quanto
Onde
4
foi encontrado aqui:fonte