¿Qué debo hacer después de que mi rama de función se haya fusionado con la maestra pero he seguido trabajando en ella?

4 minutos de lectura

Me acabo de dar cuenta de que mi compañero de trabajo fusionó mi rama de características con la rama maestra en Github, mientras que yo he seguido trabajando en mi rama de características en mi máquina local desde su fusión. ahora solo tengo git add algunos cambios nuevos en la rama de características, sin git commit aún.

Si me di cuenta de eso inmediatamente cuando hizo la fusión, habría sacado el maestro y luego creado una nueva rama de funciones y trabajado en la nueva rama de funciones.

¿Que deberia hacer ahora? ¿Será diferente la respuesta, dependiendo de si he corrido git add, git commit, o git push?

Gracias.

  • ¿Háblales de ello? El hecho de que todavía estuviera trabajando en la sucursal cuando la fusionaron sugiere una falla en la comunicación en el camino.

    – Makoto

    08 ene.

  • Muchas opciones aquí. podrías simplemente git stash su trabajo, luego cree la nueva rama principal, el git pop tu trabajo y listo.

    – jmargolisvt

    08 ene.

  • Simplemente vuelva a basar su rama de funciones en master y seguir trabajando. No es necesario nada más.

    – alondras

    08 ene.

  • La respuesta depende puramente de qué es exactamente lo que desea lograr y qué cambios le gustaría ver en esas ramas.

    – SriniV

    08 ene.

  • @larsks: Gracias. ¿Podría darme comandos específicos para probar? Todavía no estoy seguro con rebase o git en general.

    – Tim

    08 ene.


Todavía no estoy seguro con rebase o git en general.

Recuerde, siempre puede hacer una copia de su repositorio y probar cosas sin preocuparse por estropear las cosas. De hecho, si está ejecutando comandos con los que no está familiarizado recomendados por personas que no conoce, esta es probablemente una buena idea en general.

¿Podría darme comandos específicos para probar?

Primero, asegúrese de tener una copia actualizada del repositorio remoto:

git remote update

A continuación, asegúrese de estar en su rama de función:

git checkout myfeature

Y finalmente, rebase en el actualizado master rama:

git rebase origin/master

Dependiendo de los cambios en master dado que creó su rama de función, es posible que deba realizar alguna resolución de conflicto. Si los únicos cambios fueron que su rama de función se fusionó, no debería tener que corregir nada.

(Tenga en cuenta que lo anterior supone que está trabajando con un control remoto llamado origin, que es común pero no está garantizado).

  • Gracias. Antes de probar tu sugerencia (es decir, git remote update), ¿debería seguir adelante y hacer una confirmación en mi rama de función, sin empujar?

    – Tim

    08 ene.

  • Sí, para volver a establecer la base de su rama de funciones, deberá confirmar o ocultar los cambios pendientes.

    – alondras

    08 ene.

  • Después de reorganizar, ¿obtendré una nueva rama, o seguiré estando en la misma rama de funciones que antes de reorganizar, y la rama de funciones ha perdido las confirmaciones anteriores que hice?

    – Tim

    08 ene.


  • @Tim: lo primero que debe recordar acerca de Git es que hace casi todo al identificación hash. nombres como feature son formas de especificar una ID de hash particular. Una ID de hash nombrará una confirmación específica; ese compromiso nombrará su padre commit (por ID), que nombrará a su propio padre, y así sucesivamente. Qué git rebase lo que hace es Copiar (algunas) confirmaciones, luego toma el nombre existente y haz que apunte a la confirmación más copiada. Las confirmaciones originales (antes de la copia) todavía existen, pero ahora algunas de ellas no tienen una manera fácil de encontrar ellos, desde que nombre (feature) ahora encuentra el nuevo se compromete en su lugar.

    – torek

    08 ene.

¿Que debo hacer despues de que mi rama de funcion
margolisvt

Usted puede git stash esos cambios mientras crea una nueva rama. git checkout <<master branch name>> entonces git checkout -b <<new topic branch name>>.

Ahora tiene una copia limpia de maestro, así que obtengamos esos cambios ocultos con git stash pop. Ahora está de regreso donde comenzó, con todos sus cambios ya confirmados en el tronco y sus nuevos cambios listos para confirmar.

  • Gracias. acabo de correr git stash sin correr git reset HEAD . primero. y luego git checkout master, git pull, git checkout -b newbranch. Me preguntaba cuál es la consecuencia potencial cuando falta git reset HEAD .?

    – Tim

    08 ene.


  • Cualquier cambio por etapas no se habría ocultado. Si pudo cambiar de rama sin previo aviso, eso me dice que no tuvo cambios por etapas.

    – jmargolisvt

    08 ene.

  • Acabo de verificar. Mi rama de características original no tiene los cambios ocultos, mientras que mi nueva rama de características sí los tiene. Me preguntaba por qué funciona sin git reset HEAD .? ¿Qué significa el comando que falta?

    – Tim

    08 ene.

  • se deshace git add .

    – jmargolisvt

    08 ene.

  • Lo hace git stash aplicar a los cambios ya en etapa (realizados por git add)? o sólo a los cambios en el directorio de trabajo? ¿O ambos?

    – Tim

    08 ene.


.

¿Ha sido útil esta solución?

Esta web utiliza cookies propias y de terceros para su correcto funcionamiento y para fines analíticos y para mostrarte publicidad relacionada con sus preferencias en base a un perfil elaborado a partir de tus hábitos de navegación. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información
Privacidad