tipos tag remove remota rama etiquetas crear git heroku phpfog nodester

tag - ¿Puedo asignar sucursales locales a sucursales remotas con diferentes prefijos en git?



git remove tag (3)

Estamos trabajando con un repositorio git semi-centralizado aquí donde trabajo. Cada desarrollador tiene su propio subárbol en el repositorio central de git, por lo que se ve así:

master alice/branch1 alice/branch2 bob/branch1 michael/feature release/1.0 release/1.1

Trabajando localmente en mi árbol tengo un 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 al á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 manera más limpia de hacer esto. 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 .git/config actual se ve algo así 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 pulls / fetches. Pero, ¿la 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.


En su sección [origen remoto "], agregue una línea por asignación. Incluyendo maestro a maestro.

push = refs/heads/master:master push = refs/heads/topic/feature:michael/feature

No estoy seguro de cómo hacerlo con el comando git-config.

Tenga en cuenta que, a partir de ahora, todas las ramas se presionarán al mismo tiempo cuando realice un empuje recto de git (sin params).

¿Le importaría explicar por qué no mantiene los mismos nombres de sucursales local y remotamente?


Si puede, le sugiero que use los mismos nombres de sucursales local y remotamente. Luego, git push empujará todas sus sucursales locales a las sucursales correspondientes en el repositorio central.

Para usar prefijos diferentes en los repos locales y remotos, debe agregar una asignación a su archivo de configuración cada vez que cree una nueva rama de características. El comando para configurar la asignación para el tema / BRANCH_NAME es

git config remote.origin.push refs/heads/topic/BRANCH_NAME:michael/BRANCH_NAME


Puede mapear su rama a una rama de seguimiento diferente en el control remoto con algo como esto:

git remote add heroku [email protected]:YOURAPPNAME.git git checkout -b heroku -t heroku/master

Tu configuración termina de manera similar a lo que sugiere @Paul (un poco "más simple" en realidad).

Vea esta esencia (con ajustes por mi) para conocer los pasos de uso que me funcionan bien https://gist.github.com/2002048 .