En Git puedo hacer esto:
1. Comience a trabajar en una nueva función: $ git co -b newfeature-123 # (una rama de desarrollo de características locales) hacer algunas confirmaciones (M, N, O) maestro A --- B --- C \ novedad-123 M --- N --- O 2. Extraiga nuevos cambios del maestro ascendente: $ git pull (maestro actualizado con ff-commits) maestro A --- B --- C --- D --- E --- F \ novedad-123 M --- N --- O 3. Rebase fuera de master para que mi nueva característica se puede desarrollar contra los últimos cambios ascendentes: (de newfeature-123) $ git rebase master maestro A --- B --- C --- D --- E --- F \ novedad-123 M --- N --- O
Quiero saber cómo hacer lo mismo en Mercurial, y busqué en la web una respuesta, pero lo mejor que pude encontrar fue: git rebase: ¿puedo hacer eso?
Ese enlace proporciona 2 ejemplos:
1. Admito que esto: (reemplazando las revisiones del ejemplo con las de mi propio ejemplo)
hg arriba -CF hg branch -f newfeature-123 hg transplant -a -b newfeature-123
no es tan malo, excepto que deja atrás el MNO previo al rebase como una cabeza no fusionada y crea 3 nuevos commits M ', N', O 'que los representan ramificándose de la línea principal actualizada.
Básicamente, el problema es que termino con esto:
maestro A --- B --- C --- D --- E --- F \ \ novedad-123 \ M '--- N' --- O ' \ novedad-123 M --- N --- O
esto no es bueno porque deja compromisos locales no deseados que deberían descartarse.
- La otra opción del mismo enlace es
hg qimport -r M: O hg qpop -a hg arriba F hg branch newfeature-123 hg qpush -a hg qdel -r qbase: qtip
y esto da como resultado el gráfico deseado:
maestro A --- B --- C --- D --- E --- F \ novedad-123 M --- N --- O
pero estos comandos (¡los 6 de ellos!) parecen mucho más complicados que
$ git rebase master
Quiero saber si este es el único equivalente en Hg o si hay alguna otra forma disponible que sea simple como Git.
git reflog
y no se han ido por completo hasta que recogen la basura. Si desea mantenerlos en una rama con nombre para que no tenga que usar el registro, solo hágalogit branch feature-123_original
antes de volver a redactar .