2012-01-13 13 views
9

¿Cuál es un buen enfoque para manejar lanzamientos de software en github. Mi repo https://github.com/wheresrhys/jQuery-flickbook contiene todos los archivos src y compilación junto con una versión construida (minificada) del javascript.Gestión de lanzamientos en github

Pero también me gustaría que, una vez que avance a la próxima versión de la versión, incluya una, p. jquery.flickbook-0.5.min.js archivo en un directorio de lanzamientos. ¿Hasta qué punto se puede automatizar (utilizando ramas y etiquetas hormiga y git), o es algo que tendré que llevar a cabo manualmente?

Respuesta

14

Esta es la forma en que lo haría (nota: esto hace la suposición de que master es su rama "de referencia"):

  • cuando esté listo para liberar una nueva versión, crear una rama en x.y-releasemaster y compruébalo (git checkout -b x.y-release master);
  • agrega tu versión minimizada, confirma;
  • crear una etiqueta x.y (git tag x.y - si desea echar un vistazo a la página de manual, también puede crear "objetos de etiqueta");
  • empuje la etiqueta (no la rama) (git push theremote --tags, o incluso git push theremote x.y);
  • cuando haya terminado, vuelva a la maestra (git checkout master);
  • Deshágase de la rama de liberación localmente (git branch -D x.y-release) si así lo desea.

Esto significa que la versión miniaturizada nunca se abre paso en master pero terminan en la etiqueta, lo que significa que todo está allí, como una etiqueta es un refspec al igual que cualquier rama es.

+0

desde la publicación de la pregunta He encontrado este artículo http://nvie.com/posts/a-successful-git-branching-model/, que está bien, pero tal vez sea demasiado para un simple complemento con un desarrollador trabajando en ello. ¿Es una buena idea establecer una sucursal de desarrollo y su enfoque de control de versiones se podría adaptar para trabajar con ella? – wheresrhys

+0

Si usted quiere/necesita ramas de desarrollo realmente depende de usted. Seguro que es útil si quieres probar una o más características. En cualquier caso, es probable que necesite una rama de "referencia" en la que fusionará sus otras ramas, pero en cualquier caso el truco que he dado funcionaría. – fge

+0

Yay - funcionó a la perfección. Me costó muchísimo hacer que funcionase, ya que GIT no me permitió comprometer mi carpeta de versiones vacías en la rama principal, pero finalmente me di cuenta de que shodul ponía un archivo .gitignore en – wheresrhys