44 votos

git equivalente a hg mq?

Acabo de empezar a utilizar Git junto Mercurial para familiarizarme con Git.

Yo uso el mq extensión en Mercurial ampliamente para gestionar los parches locales, y estoy buscando un Git equivalente.

¿Debo usar Git branch? O hay mejores maneras de administrar los parches locales que permiten fácilmente la aplicación y la eliminación de los parches?

Gracias,

30voto

Charles Bailey Puntos 244082

Descargo de responsabilidad: yo no soy un hg usuario, por lo que he leído acerca de hg, pero no tienen mucha experiencia de primera mano de su uso.

git ofrece varias muy potente y flexible de herramientas para la gestión de ramas en un 'parche en la cola, en el estilo así que para muchos básico (e incluso algunos bastante complejos) casos de uso, nativo de git es lo suficientemente potente.

Normalmente, la mayoría de los proyectos de mantener una central estable, la rama principal de los cuales sólo las ganancias de los nuevos commits y nunca es 'rebobinar', de modo que se compromete en la rama master son fijos.

En la parte superior de este un mantenedor (o desarrollador) puede mantener uno o más de líquido ramas de trabajo-en-progreso parches (es decir, confirma) que se basan en la rama estable.

Típico parche de la gestión de las actividades incluyen:

reajuste el parche de la cola en la última rama estable de uso git rebase,

la duplicación de la revisión de la cola en un viejo maintentance rama de uso git branch y git rebase,

la reordenación de los parches en la cola de uso git rebase --interactive (aka git rebase -i) con un editor de texto para cambiar el orden de la cola.

aplastamiento de parches de uso git rebase -i con la calabaza de la directiva

la alteración de los parches o el parche de los mensajes de confirmación de uso de la git rebase -i (spot un tema?) con la edición de la directiva.

Cualquier actividad que altera un parche de alguna manera (es decir, su contenido, descripción o paternidad) se creará un nuevo comprometerse con un nuevo commit id de ese parche. El hecho de que el viejo se compromete puede ser desechados y reemplazados con regularidad antes de que se promovió a la estable de la rama master es la única cosa que hace que un 'parche en la cola, en lugar de una rama, pero este es un proyecto de convención en lugar de cualquier diferencia física en los datos que componen el cometa. A git que son objetos idénticos.

Para promover un parche a un 'real' commit es simplemente moviendo el parche en la parte delantera de la cola y su fusión en la rama master. Después de mover el parche en la parte delantera de la cola, es lo mismo que una normal cometer basado en la rama master, por lo que la fusión de sólo avance rápido de la rama principal puntero al punto en el parche de cometer.

La publicación de este cometido, como un 'estable' master patch es la ley que dice: esto es ahora una confirmación de que no va a cambiar y es parte de la inmutable de la historia del proyecto.

27voto

Jakub Narębski Puntos 87537

Echa un vistazo a "Patch-Interfaz de administración de capas" en la sección de Interfaces, Interfaces Y Herramientas de la página en Git Wiki. Aparecen las dos de la gestión de parches de interfaces, más o menos equivalente a los Mercuriales 'mq' extensión:

  • StGIT (Apilados Git), el mayor de los dos, escrito en Python, utiliza dos instantáneas para representar parche
  • La culpa (anteriormente 'gq'), escrito como una serie de scripts de bash, serie de archivos y los parches (uno por cada archivo) se almacena como archivo de texto sin formato.
  • pg (Irregular Git) es obsoletoy ya no se mantiene.

Pero si usted no necesita un uso más avanzado, se puede utilizar en lugar de "git rebase --interactive" para reordenar, la calabaza y los de split parches. Y la gestión de su sucursal en contra de la versión actual de aguas arriba, "git rebase" normalmente sería suficiente.

9voto

Dustin Puntos 35205

Sólo tiene que utilizar un reajuste de la rama y en contra de otra rama con regularidad. Esto es tanto más fáciles de manejar y más seguro que usar mq (a la que he perdido los datos en el pasado).

5voto

C Pirate Puntos 401

Git en realidad no ofrecen esta función en sí. Dependiendo de sus usos, usted podría ser capaz de obtener con "git stash" y/o ramas, pero va a ser muy básico. Si la gente tiene más avanzados de la gestión de parches de necesidades con git, parecen girar a la Colcha o StGit: ver http://git.or.cz/gitwiki/PatchManagement

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X