Estoy configurando Git con Gerrit Code Review y estoy buscando una manera de hacer que los comandos Git necesarios sean relativamente sencillos para los usuarios que puedan ser nuevos en Git.¿Cómo configurar refspec de inserción ascendente específico para Git cuando se usa con Gerrit?
Los comandos tengo actualmente para el inicio de una nueva rama de la característica son esencialmente (suponiendo Gerrit es origin
):
git checkout baseline
git pull
git checkout -b work1234
git push -u origin work1234
Esto inicia un nuevo paquete de trabajo work1234
ramificado de algunos baseline
, y el empuje final crea la rama en Gerrit y establece el upstream. Así .git/config
se ve algo como:
[branch "work1234"]
remote = origin
merge = refs/heads/work1234
Ahora, Gerrit quiere nuevas confirmaciones para su revisión para ser empujado a un refspec especial, refs/for/work1234
por ejemplo. Puedo hacer esto manualmente con:
git push origin work1234:refs/for/work1234
Lo que me gustaría hacer es encontrar alguna manera de configurar .git/config
de manera que una llanura git push
empujará la rama actual a la refspec en el control remoto que requiere Gerrit. He mirado en las siguientes áreas: git config
branch.<name>.*
- no parece tener ninguna opción específica para establecer el empuje refspecpush.default
- En cierto modo me quieroupstream
aquíremote.<name>.push
- Probérefs/heads/*:refs/for/*
aquí, perogit push
siempre quiere empujar todas las sucursales locales, en este caso, mientras que sólo quiero la rama actual
Si no puedo hacer que Git lo haga solo, escribiré un script de envoltura pequeño que especifica completamente las referencias. Sin embargo, sería mejor si Git pudiera empujar hacia el lugar correcto de forma nativa.
¿Habría una solución git-only más simple si siempre quiero presionar a un destino fijo, decir 'refs/for/master'? ([Aquí está] (http://stackoverflow.com/questions/29664305/equivalent-of-branch-name-merge-for-git-push) mi pregunta ASÍ preguntando qué versión más simple de su problema.) – Pradhan