git - gerrit name
Git push remote rejected{change### closed} (15)
El estado de git dice que mi sucursal está por delante del origen / maestro por 5 commits.
Todo lo que hago es buscar el último código. haciendo algunos ajustes y empujándolo.
¿Cuáles son esos 5 commits? ¿Son todos tuyos?
¿El cambio 14823 corresponde a uno de esos 5 commits? ¿Cuál es su estado en Gerrit?
Tengo problemas para transferir mis cambios de mi maestro local a maestro remoto debido a este error:
remote: Processing changes: refs: 1, done
To ssh://[email protected]:29418/xxxxxx
! [remote rejected] HEAD -> refs/for/master (change 14823 closed)
error: failed to push some refs to ''ssh://[email protected]:29418/xxxxxx''
alguna idea de cómo puedo solucionar este problema?
El estado de git dice que mi sucursal está por delante del origen / maestro por 5 commits.
El mensaje change 14823 closed
no viene de vanilla git
. Indica que quien mantiene ese repositorio tiene una actualización o gancho post-actualización que está evaluando su impulso y rechazándolo debido a la política local (supongo que está agregando compromisos adicionales a un problema que ya se ha marcado como completado / cerrado ) Tendrá que averiguar cuáles son esas políticas y si necesita reabrir de alguna manera el cambio para que pueda agregar compromisos, o si necesita crear una nueva solicitud de cambio y (probablemente) rebase su trabajo contra eso.
Encontré la siguiente página que detalla exactamente por qué no puede enviar sus cambios al origen debido al error de cambio XXXXX cerrado: https://git.eclipse.org/r/Documentation/error-change-closed.html
¡Aclamaciones!
Estás presionando a gerrit, que es una herramienta de revisión de código, como lo indican tanto la url (ssh: //[email protected]: 29418 / xxxxxx) como la "HEAD -> refs / for / master" "mensaje" Debe consultar con quienquiera que mantenga el repositorio que está intentando impulsar para descubrir por qué se rechaza el cambio.
Esto debería hacerlo:
git commit --amend
Elimine la identificación de cambio y luego presione para revisarla.
Esto puede suceder si ya existe un cambio en gerrit que se ha fusionado o incluso abandonado. Si se abandona, que era mi caso, restaure ese cambio en gerrit y aplique el nuevo cambio sobre el cambio restaurado.
https://gerrit-review.googlesource.com/Documentation/error-change-closed.html
Me encuentro con este problema también, cuando presiono mi confirmación y la terminal dice:
! [remote rechazado] HEAD -> refs / for / android_ui.lnx.1.2.c1-dev (cambio 1692698 cerrado)
Voy a revisar el sitio para ver el cambio correspondiente al 1692698, el mensaje de confirmación es: "Avisarme de la ayuda de anclaje del USB cuando active por primera vez el host de WiFi"
Luego, muestre los registros de confirmación en la terminal:
- b49c0f91744cb6f863616976c4fb4157c7af4b8c El aviso no es correcto cuando se habilita el anclaje a red de USB con Wi-Fi conectado.
- eb47ef919064aff516ced4bbd9d8ade0ed34b107 Solicitar ayuda de anclaje de USB cuando se activa por primera vez el host de WiFi
- 753668be1207baa514be1bbd985f3db2d6317608 Reparar hotstop Error de notificación.
La razón por la que falla el envío es que el cambio actual es el mismo que el de eb47ef919064aff516ced4bbd9d8ade0ed34b107 commit. así que hago una copia de seguridad del cambio actual y reinicio duro a 753668be1207baa514be1bbd985f3db2d6317608 y luego aplico el cambio de copia de seguridad, agrego, confirmo y presiono sucesivamente finalmente.
Espero que esto pueda resolver tu problema.
Mi hijo y yo trabajamos más de 1 hora para obtener una solución, así que lo intenté a continuación. Funciona para mí
- Copia de seguridad de todas las ramas de la carpeta .git / logs / refs / heads / {{branch}} y de los archivos actualizados en el repositorio
- Se eliminaron las sucursales que causaban un error
- Crear una rama "git branch" {{new branch name}} ''"
- mover los archivos repo a la carpeta relevante
- git commit -m "{{commit message}}"
- git push origen HEAD: refs / for / master
Todo debería estar bien y bien hecho
Prueba esto. git push --no-thin origen xxxxxx: refs / for / sprint / aaaaaa
Recibí el mismo mensaje. Y fue porque he logrado obtener el mismo ID de cambio para dos confirmaciones. Tal vez debido a una recolección de cerezas o similar entre mis sucursales locales. Resuelto al eliminar el ID de cambio del mensaje de confirmación, se agregó un nuevo Id por el enlace de confirmación.
Su ID de cambio de compromiso ha caducado, es decir, la Revisión 14823 está cerrada. no puedes empujar a lo mismo.
Haga esto para solucionar el problema:
-
git commit --amend
- eliminar el ID de cambio
- guardar y Salir
- Se agregará una nueva identificación de cambio a la confirmación. puede ser verificado por git log.
- empujar de nuevo
Tienes 5 commits.
Cada confirmación tiene un "Mensaje de confirmación" que puede contener una cadena "Change-Id:" que identifica a qué solicitud de cambio pertenece la confirmación de Gerrit (consulte https://git.eclipse.org/r/Documentation/user-changeid.html )
En este caso, una (o más) de las Peticiones de cambio identificadas por las cadenas de Id. De cambio ya está fusionada o abandonada por Gerrit y, por lo tanto, no pueden volver a utilizarse.
Debe modificar el mensaje de confirmación para uno (o más) de los commits antes de presionarlos (ver http://schacon.github.io/history.html ), eliminándolos para crear nuevas solicitudes de cambio o modificándolos para que identifican las Solicitudes de cambio de Gerrit correctas para cada compromiso.
Tienes 5 commits.
Todos ellos tienen un archivo llamado "Mensaje de confirmación" (utilizado por Gerrit).
Uno de estos archivos tiene un "ID de cambio" malo que ya fue aceptado
y se fusionó en el maestro por Gerrit, y por lo tanto no se puede usar de nuevo.
Una solución es fusionar los 5 commit en uno,
y en el proceso de hacer eso,
elimine el "ID de cambio" en el archivo "Mensaje de confirmación".
En mi caso, tuve 3 commits, así que lo hice:
git rebase -i HEAD ~ 3
Hay otras formas de fusionar varias confirmaciones:
Aplaste mi última X se compromete con Git
en mi caso tuve 2 commits, el primer commit fue mío pero el segundo no, así que lo soluciono de esta manera:
- averiguar qué archivos se comprometieron en el cambio 14823
- encuentra tu confirmación más antigua y haz un reinicio por software a su padre. tenga en cuenta que si realiza un restablecimiento completo, puede perder todas sus confirmaciones.
- intenta comprometer tus cambios una vez más, pero en este momento sin los archivos del cambio 14823
Espero que sea útil.