Errores de combinación de Git

Tengo una twig git llamada 9-sign-in-out con un código que funciona perfectamente, y quiero convertirlo en el maestro. Actualmente estoy en la twig principal.

 $ git branch 9-sign-in-out * master 

Estoy intentando cambiar a la twig de 9-sign-in-out , pero no me permite:

 $ git checkout 9-sign-in-out app/helpers/application_helper.rb: needs merge config/routes.rb: needs merge error: you need to resolve your current index first 

¿Alguna idea de cómo puedo ignorar todos los errores de la twig maestra y convertir la twig de 9-sign-in-out en el maestro? Tal vez git rebase ? Pero no quiero perder el código en la twig de 9-sign-in-out .

Merece la pena entender lo que significan esos posts de error: needs merge y error: you need to resolve your current index first indicar que falló una combinación y que hay conflictos en esos files. Si has decidido que la combinación que intentabas hacer era una mala idea después de todo, puedes volver a poner las cosas en order con:

 git reset --merge 

Sin embargo, de lo contrario, debería resolver esos conflictos de fusión, como se describe en el manual de git .


Una vez que hayas solucionado eso con cualquiera de las técnicas, deberías poder consultar la twig de 9-sign-in-out inicios 9-sign-in-out . El problema de simplemente cambiar el nombre de tu 9-sign-in-out a master , como se sugiere en la respuesta de wRAR es que si has compartido tu twig principal anterior con alguien, esto creará problemas para ellos, ya que si el historial de las dos twigs diverged, publicará el historial reescrito.

Esencialmente, lo que quiere hacer es fusionar su twig de tema 9-sign-in-out en master pero mantener exactamente las versiones de los files en la twig de tema. Puedes hacer esto con los siguientes pasos:

 # Switch to the topic branch: git checkout 9-sign-in-out # Create a merge commit, which looks as if it's merging in from master, but is # actually discarding everything from the master branch and keeping everything # from 9-sign-in-out: git merge -s ours master # Switch back to the master branch: git checkout master # Merge the topic branch into master - this should now be a fast-forward # that leaves you with master exactly as 9-sign-in-out was: git merge 9-sign-in-out 
 git checkout -f 9-sign-in-out # change branch, discarding all local modifications git branch -M master # rename the current branch to master, discarding current master