git - ramas - Cómo fusionar la rama Gerrit con otra rama Gerrit
git push example (2)
Estoy usando la versión 2.4.2 de Gerrit. Tengo un master
sucursal y creé una nueva sucursal, llamada newbranch
. Luego newbranch
algunos cambios en el control remoto (Gerrit) newbranch
. Después de verificar en Gerrit, newbranch
los cambios a newbranch
.
No, quiero fusionar el newbranch
para master
, enviar actualizaciones master
(fusionado con los cambios de newbranch
) y eliminar la rama newbranch
.
Intenté hacer esto:
git fetch
git checkout master
git merge newbranch
git push origin master:refs/for/master
Pero Gerrit le devuelve este mensaje:
! [remote rejected] master -> refs/for/master (no new changes)
¿Que debería hacer?
Esta situación ha sido reportada como un error en Gerrit. Aquí hay una solución / solución del rastreador de problemas de Gerrit :
Según mi conocimiento, tiene 2 opciones actualmente:
Force push para refs / heads. Es solo un avance rápido, por lo que, en teoría, todo ya ha sido revisado y verificado. No tiene sentido volver a hacerlo, así que saltee ese proceso y presione hacia refs / heads en lugar de refs / for.
Adelante y crea un commit de fusión. Use ''git merge --no-ff'' - esto creará una fusión de compromiso a pesar de que no es necesario en su situación de avance rápido. Luego, la confirmación de fusión se puede cargar, revisar, verificar y fusionar como de costumbre.
Mi empresa tiende a ir con la opción 2. Voy a cerrar esto como un parche, pero si tiene alguna sugerencia sobre cómo hacerlo mejor, infórmenos.
Si la fusión es una fusión de avance rápido, no existe ningún objeto para presionar a gerrit, ya que un avance rápido solo está moviendo el puntero de la bifurcación.
Debe forzar la combinación para crear un objeto evitando un avance rápido:
git merge --no-ff