tipos tag qué existen etiquetas crear git merge

tag - qué tipos de etiquetas existen en git



Cómo fusionar un commit específico en Git (3)

'' git cherry-pick '' debería ser tu respuesta aquí.

Aplicar el cambio introducido por un commit existente.

No olvide leer la respuesta de bdonlan sobre la consecuencia de la selección de cerezas en este post:
"Extraiga todas las confirmaciones de una rama, empuje las confirmaciones especificadas a otra" , donde:

A-----B------C / / D

se convierte en:

A-----B------C / / D-----C''

El problema con este compromiso es que git considera que se compromete a incluir toda la historia anterior a ellos.

Donde C ''tiene una ID de SHA-1 diferente.
Del mismo modo, elegir un compromiso de una rama a otra básicamente implica generar un parche, luego aplicarlo, y así perder la historia de esa manera.

Este cambio de ID de compromiso rompe la funcionalidad de fusión de git entre otras cosas (aunque si se usa con moderación, hay heurísticas que se aplicarán a esto).
Sin embargo, lo más importante es que ignora las dependencias funcionales: si C realmente usó una función definida en B, nunca lo sabrá .

Bifurqué una sucursal de un repositorio en GitHub y cometí algo específico para mí. Ahora encontré que el repositorio original tenía una buena característica que estaba en HEAD .

Quiero fusionarlo solo sin confirmaciones previas. ¿Qué tengo que hacer? Sé cómo fusionar todos los compromisos:

git branch -b a-good-feature git pull repository master git checkout master git merge a-good-feature git commit -a git push


Puede usar git cherry-pick para aplicar un solo compromiso a su rama actual.

Ejemplo: git cherry-pick d42c389f


Tratemos de tomar un ejemplo y entender:

Tengo una rama, di maestro , apuntando a X <comid-id>, y tengo una nueva rama apuntando a Y <sha1>.

Donde Y <commit-id> = <master> rama se compromete - pocas confirmaciones

Ahora diga que para la rama Y tengo que cerrar por brecha las confirmaciones entre la rama maestra y la nueva. A continuación se muestra el procedimiento que podemos seguir:

Paso 1:

git checkout -b local origin/new

donde local es el nombre de la rama. Cualquier nombre puede ser dado.

Paso 2:

git merge origin/master --no-ff --stat -v --log=300

Combine las confirmaciones de la rama maestra a la nueva sucursal y también cree una confirmación de combinación del mensaje de registro con descripciones de una línea de como máximo <n> confirmaciones reales que se están fusionando.

Para obtener más información y parámetros sobre la fusión de Git, consulte:

git merge --help

Además, si necesita fusionar un compromiso específico, entonces puede usar:

git cherry-pick <commit-id>