Gerrit cherry pick

Tengo un problema, cuando selecciono una confirmación de Gerrit, hago cambios, etc. Y quiero comprometerlos con –mendar a mi compromiso antes de ese cherrypick ¿cómo podría hacer eso? En este momento acabo de agregar -A todos los files, sin embargo, no tengo idea de qué hacer a continuación

La modificación solo es posible para la última confirmación. Supongamos que se llama el commit you wand para enmendar (tiene un código SHA-1) 111 . Puede ver el código SHA-1 real de su confirmación en el git log .

Puedes usar git reset --hard para que tu sucursal local apunte a la confirmación que deseas modificar. Tenga en count que con Git "simple" sin Gerrit, sería una muy mala idea, ya que está reescribiendo el historial al modificar la confirmación ya realizada.

Supongo que ya tiene cambios locales no confirmados en algunos files y desea aplicar estos cambios a la confirmación 111 . Tienes que esconder estos cambios, porque git reset --hard los eliminará y no podría deshacerse .

Entonces tienes que hacer (replace master por el nombre de una twig en la que estás):

 git stash save git reset --hard 111 git stash apply <do some more changes to commit 111 if needed> git commit --amend git push gerrit master:refs/for/master 

Y listo: tu compromiso 111 fue modificado y actualizado con Gerrit.

Hay otra forma de hacerlo: puedes usar git rebase --interactive , pero en este caso me resulta más complicado que el git reset .

El flujo de trabajo de Gerrit en su caso es:

  • Obtenga un cambio de Gerrit usando URL de la página de revisión
  • Haciendo cambios
  • Agregue cambios al índice con git add -A .
  • Enmendar el compromiso anterior con el compromiso de git commit --amend
  • Empuje el compromiso modificado nuevamente al Gerrit git push gerrit master:refs/for/master Gerrit git push gerrit master:refs/for/master (reemplace el master con sus nombres de twig remotos)

Recomiendo usar checkout en lugar de cherry pick a change / patchset de Gerrit. El process de pago con Whitout depende. En su caso, la modificación de la última modificación afectará a la última confirmación, que es la selección de cereza, eso es normal. Pero si desea enmendar el cambio en 1. commit, primero simplemente elimine el comit de cherry pick primero.