Estamos trabajando con un repositorio git semi-centralizado aquí donde trabajo. Cada desarrollador tiene su propia sub-árbol en el repositorio central GIT, por lo que se ve algo como esto:¿Puedo mapear sucursales locales en sucursales remotas con diferentes prefijos en git?
master alice/branch1 alice/branch2 bob/branch1 michael/feature release/1.0 release/1.1
Trabajando localmente en mi árbol tengo topic/feature
, que corresponde a michael/feature
en el árbol central.
He estado usando
git push origin topic/feature:michael/feature
para empujar mis cambios en el árbol remoto. Sin embargo, esto es engorroso y propenso a errores (por ejemplo, omitir el nombre del desarrollador, escribir mal el nombre de la función, etc.).
Estoy buscando una forma más limpia de hacerlo. Por ejemplo, "git push
". Sospecho que configurar un control remoto diferente con un refspec de búsqueda modificado lo hará, pero no estoy seguro de cómo hacerlo exactamente. Tampoco estoy seguro de cómo modificar las definiciones de mi rama actual para usar el control remoto diferente.
Mi actual .git/config
se ve algo como:
[remote "origin"] url = git://central/git/project fetch = +refs/heads/*:refs/remotes/origin/* [branch "topic/feature"] remote = origin merge = refs/heads/michael/project
Editar: También me gustaría aplicar esto a tirones/recuperaciones. ¿Pero el branch.<name>.merge
se ocupa de eso?
Continuaré investigando esto y publicando aquí si encuentro algo, pero espero obtener otras buenas ideas.
Editar 2: He decidido que mantendré los nombres de las sucursales locales y remotas de la misma manera. Parece que será el menos trabajo y menos propenso a problemas futuros.
Cuando modifique el archivo .git/config, no olvide hacer una copia de seguridad primero. Si arruina algo, solo necesita restaurar la buena versión conocida del archivo para volver al estado correspondiente. – webmat
Esto realmente surge mucho al hacer la implementación de git para alojar servicios como Heroku, Nodester y AppFog. – studgeek