Respuestas:
La documentación para Gerrit, en particular la sección "Empujar cambios" , explica que usted empuja a la " refs/for/'branch'
referencia mágica usando cualquier herramienta de cliente Git".
La siguiente imagen está tomada de la Introducción a Gerrit . Cuando empujas a Gerrit, lo haces git push gerrit HEAD:refs/for/<BRANCH>
. Esto empuja sus cambios al área de preparación (en el diagrama, "Cambios pendientes"). Gerrit en realidad no tiene una rama llamada <BRANCH>
; le miente al cliente git.
Internamente, Gerrit tiene su propia implementación para las pilas Git y SSH. Esto le permite proporcionar las refs/for/<BRANCH>
referencias "mágicas" .
Cuando se recibe una solicitud de inserción para crear una referencia en uno de estos espacios de nombres, Gerrit realiza su propia lógica para actualizar la base de datos y luego le miente al cliente sobre el resultado de la operación. Un resultado exitoso hace que el cliente crea que Gerrit ha creado la referencia, pero en realidad Gerrit no ha creado la referencia en absoluto. [ Enlace - Gerrit, "Detalles arenosos" ].
Después de un parche exitoso (es decir, el parche ha sido enviado a Gerrit, [colocándolo en el área de preparación "Cambios pendientes"], revisado y la revisión ha pasado), Gerrit empuja el cambio de "Cambios pendientes" al " Repositorio autorizado ", que calcula en qué rama empujarlo en función de la magia que hizo cuando presionó refs/for/<BRANCH>
. De esta forma, los parches revisados con éxito se pueden extraer directamente de las ramas correctas de Authoritative Repository
.
Para evitar tener que especificar completamente el comando git push, también puede modificar su archivo de configuración git:
[remote "gerrit"]
url = https://your.gerrit.repo:44444/repo
fetch = +refs/heads/master:refs/remotes/origin/master
push = refs/heads/master:refs/for/master
Ahora puedes simplemente:
git fetch gerrit
git push gerrit
Esto es de acuerdo con Gerrit
remote.origin.push
lugar de tener que escribirlo / pegarlo cada vez!
git fetch
y git push
con la configuración @DavidDoria mencionada anteriormente.