¿Cómo hacer un commit y pull-request en una sucursal en Github?

Parece bastante fácil, pensé …

  • Bifurqué un repository llamado abc y lo cloné localmente.
  • El repository original del que bifurqué tiene una twig llamada 2.1-stable
  • No tengo esta twig en mi repository o localmente
  • Necesito hacer un commit en esta twig y hacer un PR para el repository original del que bifurqué

Esto es lo que he intentado:

 // clone into a separate folder git clone git:github.com/some/abc.git -b 2.1-stable ../ext // set to my repo git remote set-url origin git://github.com/me/abc.git 

Cuando ahora edito un file agregando un espacio en algún lugar e bash comprometerlo, me dicen:

 local branch is ahead of remote by 1 commit 

Traté de search / tirar, pero esto crea una tonelada de conflictos de fusión (dado que simplemente "espacié", la mayoría no lo hice debido a que lo hice), pero de todos modos … estoy atascado.

El segundo bash fue agregar la twig dentro de mi repository:

 git branch -a 

Esto mostró que la twig que estaba buscando estaba en remotes/upstream/2.1-stable . Traté de agregar eso:

 git checkout -b 2.1-stable remotes/upstream/2.1-stable 

pero esto ya se siente mal e incluso tratando de comprometerse como

 git push -u https://github.com/me/abc/2.1-stable.git 2.1-stable:2.1-stable 

no se pudo autenticar

Probablemente estoy haciendo 100 cosas mal en lo de arriba …

Pregunta
¿Puede alguien decirme cómo hacer esto correctamente?

¡Gracias!

remote set-url cambia la url de su repository, que no es realmente lo que quiere, porque ambos repositorys van a tomar parte en la configuration.

Y las twigs en git no están relacionadas con las URL de clonación del repository, es por eso que su último bash no pudo autenticarse.


Parte de la magia de git es que puedes tener varios controles remotos configurados en tu repository. Para que pueda realizar su propia compra con git clone https://github/me/abc , y luego puede agregar otro control remoto con git remote add upstream https://github/some/abc ( upstream (similar al origin ) es el convencional nombre para este rol en particular). Si ejecuta git remote ahora, verá dos pares de URL push / pull en lugar de uno.

Aún no has obtenido ningún dato de la upstream , para hacer eso ejecuta la git fetch upstream . Ahora los datos están localmente en su repository, y puede trabajar en él revisando una sucursal local con git checkout -b 2.1-stable remotes/upstream/2.1-stable (esto es de su publicación, usted estuvo muy cerca allí). Debido a que no tiene acceso de confirmación al upstream , en cambio, lo que hace una vez que termina con sus ediciones / confirmaciones es enviar la nueva sucursal local a su origin repository con git push origin 2.1-stable . Ahora el código modificado está en github y estás listo para enviar una request de extracción a esa twig en particular al repository de upstream través del formulario github.

PD: tenga en count que puede asignar un nombre a su sucursal local y a su sucursal remota en el lugar que desee. Esto puede ser útil para dejar en claro que esta no es la twig exacta de 2.1-stable desde el origen, pero tal vez la twig de some-new-feature con muchas confirmaciones que simplemente se basa en 2.1-stable . Cómo funciona la bifurcación puede verificarse siempre en el historial de confirmaciones, pero la denominación puede facilitar que otras personas que naveguen en su repository descubran qué código es parte de las diferentes sucursales de su repository.