tag remove practices eliminar crear commits commands best git version-control branching-and-merging feature-branch

remove - git tags best practices



git-alias de rama? (3)

Estoy investigando cambiar de starteam a git.

Actualmente, en starteam, usamos "vistas flotantes" con nombres especiales. Estas vistas flotantes funcionan básicamente como alias. Por lo tanto, podemos especificar un alias específico para el proceso de pago y obtendremos la rama en la que estamos actualmente probando el modelo.

¿Cómo se haría esto en git? Esta es básicamente la forma en que se organizan nuestras sucursales:

Estas son todas las ramas

master (stable view) | - Branch 2012.05.01 | | - Project 1 | | - Project 2 | | - model [floating view / alias to Branch 2012.05.01] | | - Branch 2012.07.11 (these would also have various child views for projects) | - Branch 2012.10.17

(La rama 2012.05.01 se fusionará para dominar cuando se complete la prueba del modelo)

En nuestras secuencias de comandos automatizadas (ant) para ejecutar la implementación de nuestro modelo, solo realizamos el proceso de pago de nuestra sucursal denominada "modelo". De esta manera, nunca tendremos que cambiar nuestros scripts a medida que cambiamos la Rama en la que estamos probando el modelo, y descubrir en qué vista estamos probando el modelo es tan fácil como averiguar qué rama es la referencia del "modelo".

¿Hay tal manera de hacer algo similar en git?

Editar: la gente se confunde aquí.

  1. Quiero un alias de una rama. Una rama, no una confirmación.
  2. "Sucursal 2012.05.01" significa la sucursal que se enviará el 2012.05.01, no significa un momento 2012.05.01 en el tiempo
  3. Quiero un alias para Branch 2012.05.01. Branch 2012.05.01 es una rama de integración, se modifica constantemente. Pero no quiero hacer referencia a ella como Branch 2012.05.01, quiero hacer referencia a ella como "modelo". De esta manera, puedo cambiar mi alias a "Branch 2012.07.11" y obtendré el código más reciente de esa rama sin cambiar ninguna de las secuencias de comandos del código de pago.

Git no admite alias para ramas.

Esto significa que tendrá que depender de las variables en su script para hacer model = "branch.2012.10.17" o algo así. Tu script haría algo como esto, entonces:

git checkout $model

Dejo el resto de esta respuesta aquí para ver de dónde venimos en esta discusión:

Una discusión muy complicada sobre la estrategia de ramificación se puede encontrar aquí: http://dymitruk.com/blog/2012/02/05/branch-per-feature/

Específicamente, eche un vistazo al rol de la rama de integración y la rama candidata de lanzamiento. Esto puede ser lo que estás buscando.

Mire a git como algo que toma una instantánea de su directorio de trabajo, no como historias de carpetas.

progit.org/book explica el gráfico acíclico dirigido que almacena el historial. Todas las referencias son solo cosas que apuntan a nodos en ella. Eso debería aclarar cómo quiere construir su flujo de trabajo.

hacer una etiqueta de inicio - versión2.1. a partir de ahí haga su int-version2.1 (usando nubmers en lugar de fechas por brevedad). Cualquier trabajo que inicie, comience desde la etiqueta de la versión 2.1. fusionar el trabajo en la int-version2.1. Otros harán lo mismo.


Consulte aquí: https://.com/a/549949/606723

Puede cambiar el nombre de la rama maestra como Greg sugirió, o también puede crear una línea troncal que sea una referencia simbólica a la rama maestra para que los usuarios de git y svn tengan la rama "principal" a la que están acostumbrados.

git symbolic-ref refs/heads/trunk refs/heads/master

Tenga en cuenta que el tronco no es un ciudadano de primera clase. Si realiza el checkout de un troncal y realiza un estado de git, en realidad estará en maestro, sin embargo, puede usar el comando de troncales en todos los lugares donde use el nombre de la rama (registro, combinación, etc.).


En caso de que necesite una rama por función, la respuesta de Adam Dymitruk es correcta, pero en caso de que necesite guardar un estado específico de los enlaces (basado en el tiempo), sin cambiarlos puede usar las etiquetas git.

Usé etiquetas para los estados de las tiendas de cada lanzamiento de productos.