name git gerrit

name - Git/gerrit, push remote rechazado sin cambios realizados



gerrit name (8)

Con este mensaje de error, Gerrit rechaza enviar un compromiso como un nuevo conjunto de parches para un cambio, si el compromiso presionado es idéntico al conjunto de parches actual de este cambio.

Una confirmación push se considera idéntica al conjunto de parches actual si

  • los archivos en la confirmación,
  • el mensaje de compromiso,
  • el autor del compromiso y
  • los padres de la comisión

son todos idénticos.

Se realizaron cambios en una confirmación, se llevó a cabo una confirmación. Haz un push y obtengo el error:

! [remote rejected] master -> refs/for/master (no changes made)

Comprueba el ID de cambio en el mensaje de confirmación y sigue siendo una confirmación válida.

Intenté cambiar un archivo, verificándolo aparece como una alteración y luego lo agregué al área de preparación y realicé otra enmienda de confirmación. Intenta presionar nuevamente y obtener el mismo problema. No tengo idea de esto.

Editar: Esto está presionando a Gerrit, no directamente.

Estoy corriendo:

git push origin master:refs/for/master

Y el resultado de obtener los detalles de origen es (con los detalles de la empresa editados):

$ git remote show origin * remote origin Fetch URL: ssh://[email protected]:29418/myrepo Push URL: ssh://[email protected]:29418/myrepo HEAD branch: master Remote branch: master tracked Local branch configured for ''git pull'': master rebases onto remote master Local ref configured for ''git push'': master pushes to master (up to date)


Este problema se debe a las acciones que había realizado anteriormente. Estaba tratando de push un cambio nuevo, además de un cambio que todavía estaba pendiente de revisión, y el padre también estaba pendiente de revisión.

Trunk ------ Parent A ----- Parent B ----- New change (merged) (unmerged) (unmerged)

Había usado cherry-pick para obtener estos dos cambios localmente (Parent A y Parent B), y luego un tercer cherry-pick para obtener mi cambio de una sucursal local antes de intentar push . Eso es lo que causó el problema, porque mi cambio personal esencialmente estaba intentando volver a escribir el historial.

El proceso correcto sería solo pull primario B cuando esté en el tronco. Esto automáticamente detiene cualquier commit entre trunk y it (en este caso solo Parent A). Luego cherry-pick mi nuevo cambio además de eso y push funcionará bien.


Parece que está haciendo todo lo correcto en cuanto a verificar que ha realizado un cambio que Gerrit debería retomar.

git push origin master:refs/for/master

¿Tal vez éste es el problema? Si sus cambios no están en su versión local de la rama principal, no está presionando sus cambios. En cambio, intente:

git push origin HEAD:refs/for/master

HEAD es un atajo que representa tu compromiso actual en git.


Por favor, consulte la documentación oficial sobre este tema aquí:

https://gerrit-review.googlesource.com/Documentation/error-no-new-changes.html

Tuve el mismo problema, mi problema fue que presioné el cambio, luego abandoné esa fusión, luego hice algunos ajustes, enmendando incorrectamente mi compromiso y empujé nuevamente. Ahí es donde obtuve el error.

Mi solución:

  1. Si solo quieres git commit --amend este problema rápidamente, haz git commit --amend , elimina el change-Id existente, asumiendo que tienes los ganchos de git configurados, puedes terminar el commit y se te debe asignar un nuevo change-Id .
  2. Vaya a Gerrit y busque su change-Id existente, descubra qué está sucediendo y corrija en consecuencia. (recomendado)

Si está intentando actualizar un conjunto de revisiones, cada una con su propio ID de cambio que desea mantener (por ejemplo, después de una rebase en la que intercambia el orden de dos confirmaciones), puede ser rechazado si algunas de las confirmaciones en el pila permanece sin cambios. Debería forzar que se genere un nuevo hash volviendo a redactar los commit, o algo similar.


Tuve el mismo mensaje de error, pero los cambios que intentaba realizar se sumaron a los diferentes compromisos del conjunto de cambios original (hice algunos trucos de magia con git cherry-pick y parece que a Gerrit no le gustó). Abandoné mi cambio original, luego lo volví a abrir cuando me di cuenta de que podía solucionar el problema, pero no pude enviarlo a gerrit con la git review .

En este punto, mi solución rápida fue abandonar el cambio original del sitio web de Gerrit, y crear un nuevo cambio eliminando la última línea del change-Id: sha1 del mensaje de confirmación con la git commit --amend .


Tuve el mismo problema. Al mismo tiempo, había otra confirmación no fusionada para master y estaba en gerrit review y rebase en gerrit. es decir, código presionado para su revisión. rebasado en gerrit y revisión pendiente de terminar. Una vez que se revisó el código, pude presionar sin error.


tuve el mismo problema Solo cambié el mensaje de confirmación y presioné el código. Fue un exito.