Quiero intentar una respuesta que incluya git-flow y tres 'puntos' o casos de uso, el repositorio central de git, el desarrollo local y la máquina de producción. Esto no está bien probado .
Estoy dando comandos increíblemente específicos. En lugar de decir <your folder>
, diré /root/git
. El único lugar donde estoy cambiando el comando original es reemplazar mi nombre de servidor específico con example.com
. Explicaré el propósito de las carpetas para que pueda ajustarlo en consecuencia. Avíseme si hay alguna confusión y actualizaré la respuesta.
La versión de git en el servidor es 1.7.1. El servidor es CentOS 6.3 (Final).
La versión de git en la máquina de desarrollo es 1.8.1.1. Este es Mac OS X 10.8.4.
El repositorio central y la máquina de producción están en la misma máquina.
El repositorio central, que los usuarios de svn pueden relacionar como 'servidor', se configura de la siguiente manera. Tengo una carpeta /root/git
donde guardo todos mis repositorios git. Quiero crear un repositorio git para un proyecto que llamo 'flores'.
cd /root/git
git clone --bare flowers flowers.git
El comando git dio dos mensajes:
Initialized empty Git repository in /root/git/flowers.git/
warning: You appear to have cloned an empty repository.
Nada de que preocuparse.
En la máquina de desarrollo se configura de la siguiente manera. Tengo una carpeta /home/kinjal/Sites
donde pongo todos mis proyectos. Ahora quiero obtener el repositorio central de git.
cd /home/kinjal/Sites
git clone root@example.net:/root/git/flowers.git
Esto me lleva a un punto en el que puedo comenzar a agregarle cosas. Primero configuré git flow
git flow init -d
Por defecto esto está en la rama develop
. Agrego mi código aquí, ahora. Entonces necesito comprometerme con el repositorio central de git.
git add .
git commit -am 'initial'
git push
En este punto, empujó a la rama de desarrollo. También quiero agregar esto a la rama maestra.
git flow release start v0.0.0 develop
git flow release finish v0.0.0
git push
Tenga en cuenta que no hice nada entre el inicio del lanzamiento y el final del lanzamiento. Y cuando terminé el lanzamiento, se me solicitó editar dos archivos. Esto empujó a la rama de desarrollo a dominar.
En el sitio de producción, que está en la misma máquina que mi repositorio central de git, quiero poner el repositorio /var/www/vhosts/example.net
. Ya tengo /var/www/vhosts
.
cd /var/www/vhosts
git clone file:///root/git/flowers.git example.net
Si la máquina de producción también estuviera en una máquina diferente, el git clone
comando se vería como el utilizado en la máquina de desarrollo.
git clone --bare
haga lo que crees que hará.