Git¶
Installation¶
sous Linux :
apt-get install git
Configuration¶
git config --global user.name "Prénom Nom" git config --global user.email prenom.nom@adresse.mail git config --global core.editor emacs
Sources de doc¶
- http://www.cheat-sheets.org/saved-copy/github-git-cheat-sheet.pdf
- http://www.cheat-sheets.org/saved-copy/git-cheat-sheet.pdf
- http://www.cheat-sheets.org/saved-copy/git-cheat-sheet-v2.pdf
- https://s-media-cache-ak0.pinimg.com/originals/78/eb/ef/78ebef9bd9b9fe9bf97c637882822e3a.png
- https://git-scm.com/book/en/v2
Notes diverses¶
- submodules pour remplacer les branches externes
Travailler sur un projet¶
git clone adresse_depot -b versionXX --recursive
Pour récupérer les dernières mises à jour :
N'oubliez pas de le faire si vous avez l'intention de modifier du code, sous peine de complications (il est possible de fusionner après, mais c'est moins simple)
git pull
Après modification de code, pour voir les fichiers que vous avez modifiés dans votre dépôt local
git status
Pour ajouter vos fichiers modifiés à un commit destiné à aller s'agréger au dépôt central
git add mon-premier-fichier mon-deuxieme-fichier
Pour commiter le dépot local (= fixer un état donné comme bug corrigé, fonctionnalité ajoutée...) :
git commit -m "Message de commit"
Remarque :
si vous êtes sûr de votre coup vous pouvez ignorer l'étape add en ajoutant au commit l'option -a qui ajoutera tous les fichiers modifiés localement et donc remplacer les deux dernières commandes par
git commit -a -m "Message de commit"
Pour mettre à jour le dépôt distant à partir du local
git push
Publier une nouvelle branche de votre projet¶
Imaginons que vous bossez à partir du code source d'imagéo 2.4 (branche -dev) et que vous voulez publier tout ça en tant que branche 3.0-dev
git clone ssh://gitolite3@redmine.abuledu.org/repositories-redmine/leterrier/leterrier-imageo/leterrier-imageo-git.git -b version-2.4-dev --recursive imageo-3.0-dev
Ensuite on peut procéder à la création d'une branche locale qui correspond au nom qu'on veut (le nom qu'on a donné à l'étape précédente était juste le nom du répertoire de stockage) :
git checkout -b version-3.0-dev
Maintenant on y fait des modifications, on essaye de faire que chaque modification soit commitée avec git add (si ajout de fichiers) et git commit -m 'mes modifications...'
Puis on expédie tout ça sur le serveur distant dans la branche "version-3.0-dev" avec la commande
git push origin version-3.0-rev
On contrôle enfin via l'interface web que c'est bien ce qui s'est passé sur le dépôt central ... exemple http://redmine.abuledu.org/projects/leterrier-imageo/repository (on vérifie que la nouvelle branche existe et qu'on y retrouve nos commits)
N'oubliez pas ensuite qu'il faudrait aller sur jenkins pour créer les 3 saveurs de votre nouvelle version à compiler et mettre en paquet pour tous les systèmes visés ...
Pour avoir des informations sur le dépôt de code dans lequel on est
git remote show origin
Pour voire toutes les branches
git branch --all
Mettre à jour les submodules¶
Si une nouvelle fonctionnalité est développée dans un sous module et que vous voulez en bénéficier
cd src/lib/abuledulabelv1 (par exemple) git checkout master
Pensez ensuite à faire un git commit de votre projet principal pour qu'il "dépende" maintenant de cette version du sous module ...