= Boîte à outils Git = == extraire le code == * Accès public {{{ git clone lien_https }}} * Accès privé via une clef ssh {{{ git clone lien_ssh }}} Une fois le dépôt (repository) cloné on peut ensuite choisir de télécharger (checkout) une branche ou un commit particulier {{{ git checkout nom_branche }}} ou {{{ git checkout numéro_commit }}} == connaître le dépôt == * savoir sur quelle branche on est {{{ git branch }}} * connaître la liste des branches disponibles {{{ git branch -r }}} exemple : vérifier sur quelle branche on est, voir la liste des branches disponibles, extraire la branche feature/trunk/nudging, vérifier que cela a bien fait ce que l'on souhaite. [[BR]] Note : pour extraire la branche on retire "origin" de son path. {{{ [DYNAMICO]$ git branch * trunk2master [DYNAMICO]$ git branch -r origin/HEAD -> origin/trunk2master origin/devel origin/devel2master origin/feature/devel/clarifyMpi origin/feature/devel/mpi_layout origin/feature/devel/tree origin/feature/devel_newMpiTransfert origin/feature/nudging origin/feature/trunk/nudging origin/trunk origin/trunk2master [DYNAMICO]$ git checkout feature/trunk/nudging [DYNAMICO]$ git branch * feature/trunk/nudging trunk2master }}} * connaître les numéros de commit : il faut aller sur l'interface web {{{ git log >>> infos sur les commits fait sur la branche utilisée }}} * créer une branche de travail {{{ git branch nouveau_nom_branche }}} == faire un commit == Avec git le commit se fait en local puis on push sur le dépôt. Il faut ensuite se référer aux règles de chaque dépôt (par exemple pour Dynamico il faut push sur une branche à part puis faire un merge avec la trunk2master). * création d'une branche (se référer aux règles du dépôt pour le nom de la branche à créer) {{{ git checkout -b nom_branche }}} * vérification du dépôt {{{ git remote git remote -v }}} * ajout des fichiers à comiter {{{ git status git add nom_fichier }}} * commit {{{ git commit -m "message" }}} * info sur l'historique et le dépôt {{{ git log }}} * pusher la branche sur le dépôt (vérifier avec "git remote" que c'est bien "origin") {{{ git push origin nom_branche }}} * puis faire un merge avec le master depuis l'interface web == mettre à jour son dépôt local == {{{ git pull }}} == merge d'une branche hotfix/modipsl et de la master == {{{ git checkout hotfix/modipsl git rebase master git checkout master git merge hotfix/modipsl }}} vérifier le dépôt avec '''git remote -v''' puis pusher avec le rebase, on déplace la branche hotfix sur le dernier commit de la branche master, comme ça la hotfix devient dans la continuité de la master, ensuite le merge revient juste à bouger l’étiquette master au niveau de l’étiquette hotfix. Il faut voir les branches comme des pointeurs