2011-02-28 8 views
7

en mi proyecto, normalmente tengo una rama (desarrollo) que conduce a la próxima versión de lanzamiento en cuyo punto la rama de desarrollo se fusionará en la rama de lanzamiento, y luego se creará una nueva rama de desarrollo.HEAD predeterminado en git cuando HEAD múltiples se refieren al mismo SHA1

Esto significa, dos directores de las sucursales se apunta a cometer el mismo:

$> cd project.git 
$> rgrep release . 
    ./packed-refs:2808f1de3e05bf7fcc509c20f31a93e2ba645bd3 refs/heads/release 
$> rgrep 2808f1de3e05bf7fcc509c20f31a93e2ba645bd3 . 
    ./packed-refs:2808f1de3e05bf7fcc509c20f31a93e2ba645bd3 refs/heads/release 
    ./packed-refs:2808f1de3e05bf7fcc509c20f31a93e2ba645bd3 refs/heads/development_0103 

Quiero gente que Clonación en mi repo para obtener automáticamente un registro de salida de la rama de lanzamiento.

$> cd project.git 
$> git symbolic-ref HEAD 
    refs/heads/release 

pero, cuando se clona a partir de ese repo parecer la gente consigue la rama primero por orden alfabético a juego desprotegido

$> git clone project.git/ project.clone 
$> cd project.clone 
$> git status 
    # On branch development_0103 
    nothing to commit (working directory clean) 

Me parece git está llevando a cabo el nombre de la rama de revisar mirando el SHA1 , pero en realidad no usa el HEAD de cabeza simbólica del control remoto.

¿Hay alguna manera de resolver esto y hacer que la clonación predeterminada sea 'liberar' en lugar de 'desarrollo_0103'?

+0

¿Hay algún motivo por el que no esté utilizando master? –

+0

¿Qué versión de git estás usando? Nunca * * he visto esto. – Cascabel

+0

jleedev: no hay diferencia en el comportamiento si cambio el nombre 'release' a 'master' ya que 'master' sigue después de 'development_0103' alfabéticamente –

Respuesta

1

Puede usar un repositorio remoto separado para empujar lanzamientos públicos en lugar de usar su camino. Trabajará como siempre en su repositorio remoto de desarrolladores. fusionar la confirmación estable a la rama de lanzamiento. y después de eso git push release_origin release. Para que solo puedas compartir este informe de release_origin con otras personas.

O hay otro truco para eso. :) Simplemente cambie el nombre de su rama de lanzamiento a una versión, por lo que primero será alfabéticamente. :)