Je veux tenter une réponse qui inclut git-flow, et trois «points» ou cas d'utilisation, le référentiel central git, le développement local et la machine de production. Ce n'est pas bien testé .
Je donne des commandes incroyablement spécifiques. Au lieu de dire <your folder>
, je dirai /root/git
. Le seul endroit où je modifie la commande d'origine est de remplacer mon nom de serveur spécifique par example.com
. Je vais expliquer le but des dossiers afin que vous puissiez l'ajuster en conséquence. Veuillez me faire part de toute confusion et je mettrai à jour la réponse.
La version git sur le serveur est 1.7.1. Le serveur est CentOS 6.3 (Final).
La version git sur la machine de développement est 1.8.1.1. Il s'agit de Mac OS X 10.8.4.
Le référentiel central et la machine de production sont sur la même machine.
le référentiel central, auquel les utilisateurs svn peuvent associer en tant que «serveur» est configuré comme suit. J'ai un dossier /root/git
où je garde tous mes dépôts git. Je veux créer un référentiel git pour un projet que j'appelle «fleurs».
cd /root/git
git clone --bare flowers flowers.git
La commande git a donné deux messages:
Initialized empty Git repository in /root/git/flowers.git/
warning: You appear to have cloned an empty repository.
Rien à craindre.
Sur la machine de développement est configurée comme suit. J'ai un dossier /home/kinjal/Sites
où je mets tous mes projets. Je veux maintenant obtenir le référentiel central git.
cd /home/kinjal/Sites
git clone root@example.net:/root/git/flowers.git
Cela m'amène à un point où je peux commencer à y ajouter des choses. J'ai d'abord configuré Git Flow
git flow init -d
Par défaut, c'est sur la branche develop
. J'ajoute mon code ici, maintenant. Ensuite, je dois m'engager dans le référentiel central git.
git add .
git commit -am 'initial'
git push
À ce stade, il a poussé la branche de développement. Je veux également l'ajouter à la branche principale.
git flow release start v0.0.0 develop
git flow release finish v0.0.0
git push
Notez que je n'ai rien fait entre le début et la fin de la version. Et lorsque j'ai terminé la sortie, j'ai été invité à modifier deux fichiers. Cela a poussé la branche de développement à maîtriser.
Sur le site de production, qui se trouve sur la même machine que mon référentiel central git, je veux mettre le référentiel dedans /var/www/vhosts/example.net
. Je l'ai déjà /var/www/vhosts
.
cd /var/www/vhosts
git clone file:///root/git/flowers.git example.net
Si la machine de production devait également se trouver sur une autre machine, la git clone
commande ressemblerait à celle utilisée sur la machine de développement.
git clone --bare
fera ce que vous pensez qu'il fera.