Recientemente participé en un proyecto de GitHub. Hice lo siguiente:
Bifuré el repositorio original, lo cloné en mi máquina local, hice una rama para corregir el error existente, corrigió el error en esa rama, empujé esa rama a mi repositorio, envié una solicitud de extracción al autor del repositorio para fusionar mi rama de corrección a su rama maestra.
Fue la primera vez que me comprometí con el código de otro, así que no sé qué hacer. Ahora mi solicitud de extracción se ha fusionado con el repositorio / proyecto original del autor.
¿Qué debería hacer después? ¿Debo eliminar la rama? ¿Debería fusionar la rama? ¿Algo más?
Información adicional:
El proyecto original tiene una sola rama.
También tengo un conjunto ascendente para obtener las últimas actualizaciones del repositorio original. (Lo hice así) :
git remote add upstream https://path/to/original/repo.git
Y recibo actualizaciones como esta:
git fetch upstream

:)Respuestas:
Lo que debe hacer a continuación es: continuar contribuyendo con nuevas funciones o corregir otros errores en sus propias ramas dedicadas (empujadas solo a su bifurcación).
Lo que significa que su tenedor permanece, pero las ramas dentro de su tenedor pueden ir y venir.
También puede eliminar la bifurcación si no planea contribuir más, pero eliminará la entrada correspondiente en 'Repositorios a los que contribuye' .
Es más fácil:
fixrama (en realidad, ahora está eliminada para usted ) en su bifurcación (y en su repositorio clonado local: consulte " Eliminar una rama de Git tanto local como remotamente ")git pull upstream master(simasterfue la rama en la que se integró su corrección: la fusión será de avance rápido): no se necesita rebase en este punto.master(ahora con la última versiónupstream master).Sin embargo, nunca olvide un paso antes de enviar cualquier solicitud de extracción futura :
rebase primero su rama actual (
fix) desde la rama de destino ascendente(
upstreamsiendo el repositorio original que ha bifurcado: consulte " ¿Cuál es la diferencia entre el origen y el origen en github ")Antes de enviar cualquier cosa al repositorio original ("upstream"), debe asegurarse de que su trabajo se base en lo último de dicho repositorio original (o la solicitud de extracción no resultará en una combinación de avance rápido una vez aplicada de nuevo en
upstreamrepositorio).Consulte, por ejemplo, " Flujo de trabajo para administrar solicitudes de extracción en repositorios compartidos en github ".
En otras palabras,
upstreampuede evolucionar (tener nuevas confirmaciones presionadas) mientras estás ocupado arreglando cosas. Necesita reproducir sus correcciones además del último trabajo de upstream para asegurarse de que sus confirmaciones sigan siendo compatibles con la última versión deupstream.El OP Santosh Kumar pregunta en los comentarios :
Si no ha realizado ninguna corrección nueva desde su solicitud de extracción reciente, consulte más arriba (elimine y vuelva a crear una nueva rama
fixsobre su actualizaciónmaster).Si ha realizado más trabajo desde su solicitud de extracción, no me fusionaría
upstreamsi quisiera hacer una nueva solicitud de extracción: extraería y reajustaría :De esa manera, todo mi nuevo trabajo local se reproduce sobre las
upstreammasterconfirmaciones más recientes (obtenidas en mi repositorio local), suponiendo que esamastersea la rama de destino que integrará mi futura solicitud de extracción.Entonces puedo empujar mi trabajo local a '
origin', que es mi bifurcación en GitHub deupstream.Y desde mi bifurcación en GitHub, puedo hacer una solicitud de extracción de manera segura, sabiendo que solo agregará nuevas confirmaciones
upstreamsin necesidad de ninguna resolución de fusión: fusionar esas nuevas confirmaciones en elupstreamrepositorio significará una combinación simple y rápida.A
git pull --rebasesin especificar la rama sobre la que desea volver a establecer la base de su rama (actualmente verificada)fixno funcionaría:Sí, puede especificar la rama que será el objetivo de la solicitud de extracción, por ejemplo '
master'.Eso no eliminará su
fixrama, pero la reproducirá en la parte superiormasterobtenida en su repositorio.fuente
You asked to pull from the remote 'upstream', but did not specify a branch.¿Debería añadirmasteral fin? ¿Y qué hará esto ?, ¿eliminará mi rama de arreglo ?Primero, felicitaciones por su primera contribución a un proyecto en Github.
El flujo de trabajo habitual de Github es crear una nueva rama para cada problema que resuelva. De esa manera, el responsable del mantenimiento del repositorio principal puede decidir cuál de sus soluciones fusionar y cuál rechazar. Después de que una rama se fusionó en sentido ascendente, la rama ya no será necesaria y, por lo general, se puede eliminar.
fuente