A propos

git-flow est un ensemble d'extensions git permettant des operation de haut niveau
sur un depot pour appliquer le modele de la branche
★ ★ ★

Conseils de base

Les commandes et sorties de Git-flow apportent une aide precieuse.
Lisez les attentivement pour comprendre< ce qui se passe...
Le logiciel pour OSX Sourcetree est une excellente interface graphique pour git qui supporte git-flow.
Git-flow est une solution basee sur les fusions (merge). Elle n'effectue pas de rebase sur les branches de fonctionaliter
★ ★ ★

Installation

sudo apt-get install git-core gitk
★ ★ ★

Configurer Git Maintenant que Git est installer, vous devriez avoir une console ouverte
dans laquelle vous allez pouvoir taper des commandes de Git. Dans la console, commencez par envoyer ces trois lignes :

git config --global color.diff auto

git config --global color.status auto

git config --global color.branch auto

Elles activeront la couleur dans Git. Il ne faut le faire que une fois,et ca aide a la lisibiliter des messages dans la console.

Ajouter et supprimer des fichiers

L'ajout d'un fichier s'effectue, comme vu un peu plus haut,avec la commande


★ git add nom_du_fichier

Pour retirer un fichier du suivi, faites


★ git rm chemin_vers_le_fichier

Son statut sera maintenant 'deleted'. Attention, il sera egalement supprimer de votre copie locale ! En cas de mauvaise manipulation, faites, pour faire reapparaître le fichier :


★ git reset chemin_vers_le_fichier

Cette commande sert de facon generale a annuler les modifications apportees depuis la derniere mise à jour,
en ajoutant l'option --hard. Là faites bien attention, c'est irreversible par contre ! Par exemple, si j'ai modifier index.php mais que je souhaite annuler mes modifications, je ferai


★ git reset --hard index.php

Si vous voulez seulement arreter le suivi d'un fichier, sans le supprimer,
vous devez utiliser l'option --cached. Cela conserve votre fichier local mais arrete son suivi. Exemple :


★ git rm --cached fichier_prive

vous donne un diff unifier entre votre copie de travail et la derniere revision recuperee de votre branche.


★ git diff

Partager ses modifications

Maintenant, vous pouvez enfin envoyer vos modifications. Commencez par faire un commit
Pour envoyer vos modifications, rien de plus simple

★ git commit -m "Le message de commit, vous savez celui qui apparait dans git log ?"

Si vous ne voulez envoyer que certains fichiers,
ajoutez derriere le message de commit la liste des fichiers ainsi

★ git commit -m "Le message de commit." fichier1 fichier2

Normalement, vous devez passer par ★git add★ pour chacun des fichiers que vous avez modifié,
mais il existe un raccourci bien pratique,
l'option -a qui ajoutera automatiquement tous les fichiers modifiés déjà suivis
(donc pas les nouveaux fichiers, attention !).

★ git commit -am "Le message de commit."

Vous pouvez omettre l'option -m, votre editeur favori s'ouvrira
alors pour que vous puissiez rentrer un message de commit.
Quand vous utiliserez les branches, faites bien attention à verifier
dans quelle branche vous envoyez vos modifications en faisant un

★ git branch

A ce stade, les autres developpeurs ne savent pas que vous avez fait des modifications.
Il va vous falloir faire un push. Là encore rien de plus simple :

★git push origin master

Recuperer les modifications des autres

Pour mettre à jour votre version locale, il va vous falloir lancer

★git pull
<

Si vous travaillez sur une branche de test et qu'un developpeur modifie la branche master,
vous ne serez pas affecter taper:

★git log --all fera tout de même apparaitre la modification).

Creer des branches

Pour visualiser la branche sur laquelle vous travaillez
(important a faire avant un pull ou un push en cas de doute),

★ git branch
  • 1 creer une nouvelle branche a partir de la revision actuelle et sy rendre
    taper ★git checkout -b ma_super_branche


    • 2 seulement creer la branche, rester sur la branche actuelle
      taper ★ git branch ma_super_branche


    • 3 Afficher les branche distante
      taper ★ git branch -a
    • A present, si vous voulez travailler sur une des branches presentes sur GitHub,
      il vous faut creer une branche locale qui sera liee à la branche distante.
      Cela se fait egalement avec la commande git branch
      (ou git checkout -b, en ajoutant un un argument, le nom de la branche distante

      ★git checkout -b mwsaz origin/nom-de-votre-branch




      Ici, j'ai demander a creer une branche recherche calquee sur la branche recherche disante. Ainsi, quand je ferai git pull, ma branche locale sera mise a jour. On ne travaillera jamais sur des branches distantes.

      Maintenant que vous avez une vague idee du concept de branches locales/distantes, vous devez vous demander comment envoyer une branche locale sur le serveur. On se place donc dans le cas ou vous voulez creer une nouvelle branche, qui n'existe pas sur le serveur. Il vous faut tout dabord creer une branche locale, puis la pusher sur le serveur :

      ★ 1 git checkout -b nom_de_la_branche # Creation de la branche locale

      Les branches peuvent etre fusionnees, supprimees,
      n'hesitez pas pour a en creer des que vous vous lancez dans un travail setendant sur plusieurs commits.
      Pour changer de branche, il vous faut faire git checkout nom_de_la_branche. Il faut que votre repertoire de travail soit propre, c'est à dire que git status naffiche aucun fichier comme modified. Un git branch vous indiquera à l'issue de cette manipulation que vous vous trouvez sur nom_de_la_branche. Si vous souhaitez changer

      Fusionner des branches

      Pour fusionner toutes vos modifications avec la branche par defaut, assurez de n'avoir plus aucun fichier modifié en attente (faites un ''git status'' et assurez-vous qu'il ne renvoie rien).
      Puis passez à la branche par defaut, et enfin fusionnez les deux :

      ★ git checkout master

      ★ git pull . nom_de_la_branche_à_merger

      Attendez, resolvez les conflits. Voila, votre branche de developpement a ete fusionnee dans votre branche par defaut.
      Vous pouvez aussi faire l'inverse. Si par exemple vous corrigez un bug dans la branche principale,
      il y a de fortes chances qu'il soit aussi dans les autres branches.
      Dans ce cas, vous devez vous placer dans la branche de developpement, et comme precedemment :

      ★ 1 - git checkout ma_branche

      ★ 2 - git pull . master

      Supprimer des branches

      Pour supprimer une branche locale, il suffit de passer l'option -d a git branch

      ★ git branch -d ma_branche

      Cette commande ne fonctionnera que si cette branche a ete fusionner, sans quoi vous perdriez des commits. Pour la supprimer si elle contient des commits non fusionner, il faut utiliser l'option -D. En faisant cela, ferez disparaître les modifications de cette branche qui n'ont pas ete fusionnees !.
      N'utilisez cette option que si vous savez ce que vous faites. Pour supprimer une branche distante, il y a deux etapes : supprimer votre branche locale, qui la suivait ; supprimer la branche distante.

      ★ 1 - git branch -d ma_branche

      ★ 2 - git push origin :ma_branche

      Vous pouvez aussi ne supprimer que la branche distante,
      la branche locale correspondante sera supprimer au prochain git gc.

      Maintenance

      Au fur et a mesure de vos commits, votre copie locale du depot s'encrasse : les fichiers sont stocker en piles, et il est bon de faire le menage de temps en temps.
      Une commande (qui en combine plusieurs est la pour ca

      ★ 1 git gc

      Qui lance en fait, entre autres, git repack et git prune (gc = garbage collect).
      La premiere va recompresser les fichiers, et s'assurer que le depot n'est pas fragmente. La deuxième permet de faire le menage dans les branches distantes non utiliser (suppression des branches locales de suivi qui pointent sur une branche distante supprimer). Cette commande n'affectera pas votre travail, elle rendra l'acces a votre depot local plus rapide, et diminuera l'espace occuper par le dossier .git.

      Utiliser les tag

      les tags permettent de donner un nom a une revision. Partout ou vous pouvez specifier un hash de revision (dans ''git log'' par exemple, mais aussi dans les commandes de checkout,de merge, etc),
      au lieu de donner le-dit hash, vous pourrez donner un nom. Ce nom doit etre sans espaces, court et explicite de preference.
      C'est un tag. Pour tagger une revision, rien de plus simple :

      ★ 2 - git tag mon_tag

      mon_tag devient alors un alias pour la derniere revision envoyee dans la branche courante.
      Comme pour les branches, on peut supprimer des tags avec l'option -d

      Resumer Git

      git est un logiciel de gestion de versions decentralise. C'est un logiciel libre cree par Linus Torvalds, auteur du noyau Linux
      , et distribuer selon les termes de la licence publique generale GNU version 2. En 2016,
      il s’agit du logiciel de gestion de versions le plus populaire qui est utiliser par plus de douze millions de personnes4.




      Haut de page

      mon tweeter