Aquí hay algunas posibilidades, dependiendo de exactamente lo que quiere decir con "reemplazar". Es casi seguro que tomó el enfoque correcto para empezar: la fusión generalmente es el camino a seguir. Los "errores" que viste fueron conflictos de fusión, presumiblemente. Si usted sabe con certeza que, cada vez que hay un conflicto, que desea utilizar la versión de su rama experimental, que podría hacer:
# resolve conflicts by taking the version from experimental
# non-conflicting content is merged normally
git checkout master
git merge -Xtheirs experimental
Si desea utilizar la versión en experimental para todo, no sólo donde hay conflictos, hay muchas maneras (en realidad no hay una estrategia de fusión para esto). El más simple:
# do the merge the other way around
git checkout experimental
git merge -s ours master
git checkout master
git merge experimental
# do the merge the right way
git checkout master
git merge --no-commit experimental # merge, but stop before committing
git checkout experimental . # check out content, but don't switch branch
git commit # commit the merge
Las formas que otros han sugerido (reset --hard
, branch -M
) van a trabajar, más o menos, pero ya que no crea una combinación de cometer, su rama principal se mueve en una forma no avance rápido, potencialmente causando dolores de cabeza a otros que necesitan sacar de este repositorio. En general, diría que esa es la respuesta correcta solo si estas ramas no están publicadas.
¿Qué tipo de errores obtienes? ¿Y desea * fusionar * los cambios en el maestro, o simplemente reemplazar el maestro con la rama de experimento? – poke
Supongo que los errores son realmente "conflictos" –
mala elección de las palabras. Debería haber dicho conflictos. Pero hay tantos y realmente no quiero resolverlos. –