Tenemos un proyecto de grandes raíles que se ejecuta en un servidor de producción y almacenamiento intermedio. ¿Es una buena idea crear etiquetas cada vez que implementamos en etapas o producción (esto sucedería automáticamente con capistrano). ¿O es mejor crear ramas llamadas "desarrollo" y "puesta en escena", (el maestro contendría el estado de producción)?tags vs branches en git
Respuesta
Puede utilizar las ramas para desarrollo, montaje y producción y, al mismo tiempo, usar etiquetas para identificar las versiones de producción. Me gusta la forma en que git flow
maneja esas ramas y le permite usar más sucursales para desarrollar nuevas funciones. Como desarrollador, nunca tendrías que ingresar código en la rama principal, y las fusiones en master también son raras.
Las etiquetas en git son bastante duraderas: se propagan automáticamente cuando se busca desde un repositorio remoto, y si quiere limpiarlas, tiene que hacerlo manualmente en cada copia. Por lo tanto, prefiero usar las ramas (y posiblemente sus reflogs) para marcar el despliegue automático, porque de lo contrario probablemente sería enterrado en muchas etiquetas muy pronto.
Etiquetamos cada uno de nuestros despliegues (automáticamente en nuestras secuencias de comandos de implementación) con el fin de una recuperación rápida si es necesario, pero también son útiles como un historial de implementación. Por ejemplo:
deployment_stag_20120804
deployment_stag_20120823
deployment_prod_20120715
deployment_prod_20120724
Usted puede hacer su escritura etiquetas para mantener sólo el último número N de despliegues si se quiere evitar una gran cantidad de etiquetas.
Una rama tiene más sentido si su método de implementación se fusiona, por ejemplo, en una rama de producción, en la que un gancho git podría desencadenar un tirón en el servidor de prod.
- 1. Git- Tracking remote branches
- 2. ¿Qué convenciones de nomenclatura usa para SVN Branches and Tags?
- 3. git root branches ... ¿cómo funcionan?
- 4. Jenkins git plugin and branches
- 5. Struts Tags vs. JSTL
- 6. Git feature branches y minor code improvements
- 7. Git branches & commits history after merge
- 8. Git cherry-pick syntax y merge branches
- 9. Subversion Vendor Branches
- 10. Git: Listar git branches, ordenar por (y mostrar) fecha
- 11. ¿Cómo obtener --detect-branches para trabajar con git-p4?
- 12. Perforce Dev Branches - Sparse Branching vs. Private Branching
- 13. Meta Tags en el cuerpo
- 14. Git Mercurial vs vs SVN
- 15. git pull VS git fetch git rebase
- 16. TortoiseGit vs Git Extensions
- 17. excluye git vs ignora
- 18. git merge vs rebase usando git svn
- 19. Git mergetool vs difftool
- 20. git vs mercurial rendimiento
- 21. git push -f vs. +
- 22. `git svn rebase` vs` git rebase trunk`
- 23. git stash pop vs git rebase
- 24. git-svn error de clonación: error: todavía hay referencias en 'refs/remotes/tags'
- 25. git add. vs git commit -a
- 26. "git branch --track" vs "git checkout --track"
- 27. Struts <bean:write> tags
- 28. HtmlAgilityPack Drops Opción End Tags
- 29. TeamCity Projects y Multiple SVN Branches
- 30. ¿Cómo debo deshacerme de TFS Branches correctamente?