Tengo un proyecto alojado en GitHub que alguien ha bifurcado. En su bifurcación, crearon una nueva rama "foo" e hicieron algunos cambios. ¿Cómo llevo a su "foo" a una nueva sucursal también llamada "foo" en mi repositorio?
Entiendo que me pueden enviar una solicitud de extracción, pero me gustaría iniciar este proceso yo mismo.
Suponga lo siguiente:
- Debido a que bifurcaron mi proyecto, nuestros repositorios comparten la misma 'historia'
- Aunque GitHub muestra que su proyecto fue bifurcado del mío, mi repositorio local no tiene ninguna referencia al proyecto de esta persona. ¿Necesito agregar el suyo como control remoto?
- Todavía no tengo una rama llamada "foo". No sé si primero necesito crear esto manualmente.
- Definitivamente quiero que esto se arrastre a una rama separada y no a mi maestro.
fuente

git://URL de la página del repositorio GitHub de la otra persona en lugar de//path/to/coworkers/repo.git. (Describiendo que eso fue lo que hizo que mi respuesta fuera demasiado lenta;))No, no necesita agregarlos como control remoto. Eso sería engorroso y difícil de hacer cada vez.
Agarrando sus compromisos:
Esto crea una rama local llamada
ournameforbranchque es exactamente igual a lo quetheirbranchera para ellos. Para el ejemplo de la pregunta, el último argumento seríafoo:foo.La
:ournameforbranchparte de la nota puede dejarse de lado si es molesto pensar en un nombre que no entre en conflicto con una de sus propias ramas. En ese caso, una referencia llamadaFETCH_HEADestá disponible. Puedesgit log FETCH_HEADver sus commits y luego hacer cosas comocherry-pickedelegir sus commits.Empujándolo de nuevo a ellos:
A menudo, quieres arreglar algo de ellos y empujarlo de vuelta. Eso también es posible:
Si trabajar en estado separado te preocupa, crea una rama usando
:ournameforbranchy reemplazaFETCH_HEADy másHEADarriba conournameforbranch.fuente
masterrama predeterminada )git branch -m newbranchmientras está en este estado separado, git perderá la cabeza y comenzará a decir que su repositorio ya no es válido.git initparece arreglarlo y volverlo a poner más o menos en el estado en que estaba antes, con la rama llamada "newbranch".Si la respuesta de antak:
te dio:
Luego (siguiendo los consejos de Przemek D) use
fuente
La siguiente es una buena solución conveniente que funciona con GitHub para verificar la rama PR desde la bifurcación de otro usuario. Debe conocer el ID de la solicitud de extracción (que muestra GitHub junto con el título de relaciones públicas).
Ejemplo:
La fijación de su código inseguro # 8
Alice quiere fusionar 1 cometen en
your_repo:masterdeher_repo:branchSustituya su control remoto si es diferente de
origin.Sustituya
8con la ID de solicitud de extracción correcta.fuente
GitHub tiene una nueva opción en relación con las respuestas anteriores, solo copie / pegue las líneas de comando desde el PR:
MergeoSquash and mergeview command line instructionsfuente
Si el repositorio bifurcado está protegido, por lo que no puede empujarlo directamente, y su objetivo es hacer cambios en su foo, entonces debe hacer que su sucursal foo entre en su repositorio de la siguiente manera:
Ahora tiene una copia local de foo sin upstream asociado. Puede confirmar los cambios (o no) y luego empujar a su foo a su propio repositorio remoto.
Ahora foo está en tu repositorio en GitHub y tu foo local lo está rastreando. Si continúan haciendo cambios en foo, puedes buscar los suyos y unirte a tu foo.
fuente