meaning - git cherry pick multiple commits
¿Cómo escoger desde el escondite en git? (2)
El problema es que un alijo consiste en dos o tres confirmaciones. Cuando se oculta, el árbol de trabajo modificado se almacena en una confirmación, el índice en una confirmación, y (si se usa el --include-untracked
) todos los archivos sin seguimiento en una tercera confirmación.
Puedes ver esto si usas gitk --all
y haces un alijo.
stash@{0}
apunta a la confirmación que contiene el árbol de trabajo.
Sin embargo, puedes hacer un picking de ese compromiso si lo haces.
git cherry-pick "stash@{0}" -m 1
La razón por la que cherry-pick
piensa que el alijo es una combinación, y por lo tanto necesita el parámetro -m 1
es que el compromiso de alijo tiene padres de varias pilas, como se puede ver en el gráfico.
No estoy seguro de qué es exactamente lo que quiere lograr con la selección de cerezas. Una posible alternativa es crear una rama desde el alijo. Confirma los cambios allí y combínalos con tu rama actual.
git stash branch stashchanges
git commit -a -m "changes that were stashed"
git checkout master
git merge stashchanges
Me pregunto si es posible cosechar cerezas del escondite.
git stash save "test cherry-pick from stash"
*git cherry-pick stash@{0}* --> Is this possible?
Estoy recibiendo la siguiente exception
cuando probé el command
anterior:
Error
~/Documents$ git cherry-pick stash@{0}
error: Commit 4590085c1a0d90de897633990f00a14b04405350 is a merge but no -m option was given.
fatal: cherry-pick failed
No he hecho esto antes. Pero la página del manual en cherry-pick dice que funciona solo en los envíos.
Given one or more existing commits, apply the change each one introduces,
recording a new commit for each. This requires your working tree to be
clean (no modifications from the HEAD commit).
El ocultamiento no es un compromiso y no mueve la CABEZA. Por lo tanto, esto no se puede hacer [esto es solo una conjetura]