multiple - how to use cherry pick git
git merge--no-commit vs git cherry-pick--no-commit (2)
¿Hay alguna diferencia entre git merge --no-commit
y git cherry-pick --no-commit
?
¿Y hay alguna diferencia en la historia si me comprometo después de estos dos comandos?
Mientras que git-merge se usa para unir dos o más historiales de desarrollo, git-cherry-pick se usa para aplicar los cambios introducidos por algunas confirmaciones existentes.
Entonces, una vez que te comprometas después de realizar una git-merge , Git agregará lo que se llama una confirmación de combinación . En el otro lado, cuando se git-merge , git aplicará los cambios introducidos por estos compromisos en la parte superior de su árbol de trabajo (no hay fusión entre dos o muchas ramas). Dicho de otra manera, los Commits se clonan y se colocan en la parte superior de su sucursal.
Eche un vistazo a Git Cherry-pick vs Merge Workflow para entender las diferencias basadas en las necesidades reales de un representante de repo.
Si te comprometes después de git merge --no-commit
, obtendrás un commit de fusión. Mientras que después de un git cherry-pick --no-commit
obtendrás un commit con un solo padre.
Por lo tanto, sí, hay una diferencia entre esos dos comandos.
En particular si tienes algo como
A -- B -- C
/ L HEAD
/
-- D -- E
Si cherry-pick
E
, no obtendrá modificaciones de la cherry-pick
D
Mientras que si te merge
, obtendrás ambos.