es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

La confirmación revertida en la rama A no está presente al fusionarse desde la rama B.

Me equivoqué al hacer commit en la rama “dev”, en lugar de “feature-branch”, y lo empujé al repositorio remoto. Siguiendo el consejo de git undo commit on protected branch?, seguí los siguientes pasos para deshacer el commit en “dev” y hacerlo en “feature-branch”:

En “dev”, deshacer el commit localmente y guardar los cambios en un stash para después hacer commit en “feature-branch”:
1. git reset --soft HEAD~1
2. git restore --staged .
3. git stash
4. git pull
5. git revert SHA-1
6. git commit -m "reverting commit made to wrong branch"
7. git push

En “feature-branch”:
1. git stash pop
2. git add ., git commit -m "making commit in the right place"

Genial. En este punto, “dev” vuelve a estar como estaba antes de cometer erróneamente allí, y “feature-branch” tiene los nuevos cambios. Luego, hice más trabajo y añadí más commits en “feature-branch”.

Después de crear una solicitud de extracción desde “feature-branch” a “dev” y fusionarla, parece que el commit que fue revertido no está presente en “dev”.

¿Qué está sucediendo aquí?

Por ahora, simplemente crearé una nueva rama y reescribiré manualmente el commit, pero no entiendo por qué esta serie de eventos me está mostrando una diferencia en mi IDE (vscode y gitlens), mientras que GitHub me dice que no hay diferencia.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Es posible que el commit que se revirtió no haya sido realmente fusionado en dev. Cuando fusionaste feature-branch en dev, Git pudo haber reconocido que el commit ya había sido revertido y lo excluyó de la fusión. Esto podría explicar por qué no estás viendo el commit en dev y por qué no hay una diferencia en GitHub.

    Alternativamente, es posible que haya ocurrido un conflicto durante la fusión que resultó en la exclusión del commit. En este caso, es posible que debas fusionar manualmente el commit en dev para que aparezca.

    En cuanto a por qué ves una diferencia en tu IDE pero no en GitHub, puede ser una diferencia en la forma en que las dos herramientas interpretan los cambios. Verifica que estás comparando las ramas correctas y que la configuración de tu IDE y de GitHub sea consistente.

Comments are closed.