Pregunta

Acabo de empezar a usar Git Mercurial junto a familiarizarme con Git.

Yo uso la extensión mq en Mercurial ampliamente para administrar parches locales, y yo estoy buscando un equivalente de Git.

¿Debo usar rama Git? O hay mejores formas de gestionar los parches locales que permiten fácilmente aplicar y retirar los parches?

Gracias,

¿Fue útil?

Solución

Salida "capas de la interfaz de gestión de parches" de Interfaces , Frontends y herramientas página en Git Wiki. No se enumeran dos interfaces de administración de parches, más o menos equivalente a '' mercuriales mq extensión

  • StGIT (Stacked Git), mayor de los dos, escrito en Python, utiliza dos instantáneas de representar parche
  • culpa (antes 'GQ'), escrito como una serie de scripts bash, serie archivo y los parches (uno por cada archivo) se almacenan como archivos de texto sin formato.
  • pg (Dispersada Git) es desuso , y ya no se mantiene.

Pero si no es necesario un uso más avanzado, se puede usar en su lugar " git rebase --interactive " para reordenar, squash y parches de división. Y para gestionar su rama contra la versión actual de aguas arriba, "git rebase" por lo general sería suficiente.

Otros consejos

Renuncia: No soy un usuario de Hg, por lo que he leído sobre hg pero no tengo mucha experiencia de primera mano de usarlo

.

git proporciona varias herramientas muy potentes y flexibles para la gestión de las ramas en un estilo 'cola de parche' por lo que para muchas básica (e incluso algunos bastante complejos) casos de uso, git nativa es suficientemente potente.

Por lo general, la mayoría de los proyectos mantienen una rama encargado del establo central que sólo se adquiere nuevas confirmaciones y nunca se 'rebobina' por lo que se compromete en la rama principal son fijos.

Además de esto un mantenedor (o un revelador), podrá conservar una o más ramas de fluidos de los parches de trabajo en progreso (es decir comete) que se basan en la rama estable.

actividades parche Gestión típicas incluyen:

rebase la cola de parche sobre la lastest rama estable - uso git rebase,

duplicar la cola de parche sobre una antigua rama maintentance - git branch uso y git rebase,

parches de reordenamiento en la cola -. git rebase --interactive uso (también conocido como git rebase -i) utilizando un editor de texto para cambiar el orden de la cola

parches aplastando - git rebase -i uso con la directiva de squash

parches o parches que alteran los mensajes de confirmación -. git rebase -i uso (? Detectar un tema) con la directiva editar

Cualquier actividad que altera un parche de ninguna manera (es decir, su contenido, descripción o filiación) va a crear un nuevo commit con un nuevo ID de cometer de ese parche. El hecho de que los viejos confirmaciones pueden ser desechados y sustituidos regularmente antes de ser promovidos a la rama principal estable es la única cosa que los hacen una 'cola de parche' en lugar de una rama hace, pero esto es una convención proyecto más que cualquier diferencia física en los datos que compensa las confirmaciones. Para GIT son objetos idénticos.

Para promover un parche a un 'real' commit es simplemente moviendo el parche al frente de la cola y la fusión en la rama principal. Después de mover el parche al frente de la cola, que es lo mismo que una confirmación normal basado en la rama principal, por lo que la fusión sólo avanza rápidamente el puntero rama principal para señalar en el parche cometió.

La publicación de esta confirmación como 'estable' parche maestro es el acto que dice: esta es ahora una confirmación de que no va a cambiar y es parte de la historia inmutable del proyecto

.

Sólo tiene que utilizar una rama y rebase en contra de su rama aguas arriba con regularidad. Esto es tanto más fácil de manejar y más seguro que usar MQ (a la que me he perdido los datos en el pasado).

Git en realidad no proporciona esta función en sí. En función de sus usos, es posible que pueda pasar con "git escondite" y / o ramas, pero será bastante básico. Si la gente tiene la administración de parches más avanzada necesita con git, que parecen girar acolchar o StGit: ver http: // git.or.cz/gitwiki/PatchManagement

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top