git

Introduction GIT est un gestionnaire de version décentralisé écrit par Linux Torvalds (aussi inventeur du noyau Linux) Quelles sont les différences entre un VCS (Version Control System) décentralisé (comme GIT) et un centralisé (comme SVN) ? Dans GIT, les copies de travail (l’endroit où sont stockés le code et ses modiciations) sont locales. Pour partager le code, ou les mettre sur un dépôt central, il faut le faire explicitement. Dans SVN, toutes les informations sont centralisées sur un serveur central, à chaque commit.

Problème de mémoire avec git

Après avoir googler pour trouver la solution à : remote: Counting objects: 321, done. error: pack-objects died of signal 928⁄251) error: git upload-pack: git-pack-objects died with error. fatal: git upload-pack: aborting due to possible repository corruption on the remote side. remote: aborting due to possible repository corruption on the remote side. fatal: protocol error: bad pack header Il s’avère que les outils classiques sont : git gc git fsck git repack Si rien n’y fait, tenter :

Enregistrer sa passphrase ssh

Si la passphrase de la clef SSH est demandée à chaque accès à cette dernière : [09:23:32] jmfrouin@xps13:.../weather (master)$ git fetch Enter passphrase for key '/home/jmfrouin/.ssh/id_rsa': [09:23:38] jmfrouin@xps13:.../weather (master)$ git fetch Enter passphrase for key '/home/jmfrouin/.ssh/id_rsa': Il faut demander, poliment, à ssh-agent, de s'en souvenir, pour nous: [09:23:41] jmfrouin@xps13:.../weather (master)$ ssh-add ~/.ssh/id_rsa Enter passphrase for /home/jmfrouin/.ssh/id_rsa: Identity added: /home/jmfrouin/.ssh/id_rsa (/home/jmfrouin/.ssh/id_rsa) [09:24:14] jmfrouin@xps13:.../weather (master)$ git fetch [09:24:16] jmfrouin@xps13:.../weather (master)$ Voilà, votre clef SSH sera à nouveau déverrouillée au prochain reboot.

Déploiement d'application Symfony en production avec git

Assumptions

Partons du principe que l’on déploie, en production, dans /var/www/mon_app
Que la gestion des dépôts git à été faite sous gitolite.
L’user de déploiement est publisher.
Enfin dans git, on à deux branches (entre autre), une dans laquelle, master, on verse les modifications à mettre en production, et une production, qui contient les commits avec la configuration de production, que l’on rebase sur master avant de la pousser.

Préparation / Mise en place

On créé initialise donc le dépôt git :