Comment utiliser GIT au Quotidien

plus de 4 an(s)

Description

GIT permet de partager vos sources et faciliter le travail collaboratif des équipes de développement en proposant dans fonctionnalités avancées de gestion de conflit, rebase, merge, pull etc. 

Les fonctionnalité de création de branches et de merge de GIT sont un atout majeur de ce CMS, il est base sur un modèle très simple et  permet de travailler sur plusieurs branche locales de manière indépendant. 

Voici quelques commande pour une utilisation au quotidien de GIT 

Cloner un projet git  

Pour utiliser un dépôt git, il faut le cloner comme suit :  git clonehttps://mon.serveur.git/mon_projet   

La branche Master :  

Représente la branche principale lors de la création d'un dépôt Git, par convention est appelé master.  


Branche Local vs Remote  

Pour chaque branche créée, nous pouvons distinguer  2 branches 

  • la branche locale qui correspond à la branche sur notre machine locale, auquel on peut apporter des modifications, fusionner avec d'autres branches, et rebaser si besoin.  

  • La branche Origin (Remote) : correspond à la branche qui se trouve sur le serveur git distant.  

 
 

Création de branche :  

La création d'une nouvelle branche se fait avec la commande :  

  • git checkout –b  my_branch  

Commiter sur une branche :  

Pour sauvegarder  vos modifications dans l'index git, il faut les commiter comme suit : 

git commit –m  "Mon message de commit clair et précis, Hey les gars, j'ai ajouté un nouveau fichier pour faire un test"  

 
 

Modifier un commit  

Dans le cas où vous avez commité un fichier sans le vouloir, ou ajouté  des lignes de codes de trop lors d'un commit, pas de panique, vous pouvez modifier le précédent commit avec l'option –amend en procédant comme suit :  

  • Rectifier le tir en apportant les modificataions nécessaires (supprimer le fichier de trop, retirer le code de trop, ajouter de nouveaux fichier ou du nouveau code)  

  • Tapez git  add . (pour ajouter tout) ou git add     /mon/fichier_specifique  

  • Puis git commit –amend : une fenêtre d'édition s'ouvre pour vous demander de confirmer  (cf. Commande vi édition de texte  unix)  

 

 

Git pull :   

Permet de collecter les modifications distants et de les fusionner avec notre branche locale. C'est pour cela que des fois nous avons des conflits à la suite d'un pull. ==> on peut également utiliser l'option –rebase pour rebaser notre branche après le merge.  

 

Git fetch  :  

Contrairement à git pull, cette commande permet comme son nom l'indique de collecter les changements distantes, elle va mettre à jour les branches origin/ et ne fait rien d'autre. 

On peut utiliser cette commande pour merger par exemple notre branche avec une branche distant.  

  • git fetch  

  • git merge origin/my_other_branch   

 

Git push   

Pour publier ces modifications sur le dépôt distant, il faut pousser ces commits comme suit.  

  •  git push origin my_branch   

 

Cherry-pick :  

Vous venez de faire un commit sur une branche spécifique pour apporter une super correction sur un bug de prod qui fait grincer les dents de la TMA et là, on vous demande faire le même correctif sur une autre branche qui est utilisé par la pre-prod.  

La commande suivant va vous permettre de reporter automatiquement un numéro de commit vers une branche cible.  

  • git cherry-pick  numero_de_commit  

Note : en cas de conflit, resoudre manuellement les conflit et tapez git cherry-pick –continue pour terminer.  

 
 

Merger une branche :  

L'équipe de TMA a travaillé très dure la semaine dernière, il ont corrigé bug des bugs blocants et mineurs qui sont actuellement sur une branche_tma. Pour profiter des améliorations apportées vous allez devoir fusionner leur travail dans votre branche.  

Pour ce faire procéder comme suit :  

  • Ajouter votre travail dans l'index : git add .   

  • Commiter votre travail : git commit –m "message"  

  • Récupérer les modifications distants : git pull  

  • Fusionner la branche TMA : git merge branch_tma  

 
 

Rebaser une branche :  

Imaginer le cas suivant, vous travaillez sur une nouvelle fonctionnalité, le temps necessaire aux developpement va vous prendre quelques jours... 

D'abord vous créez une nouvelle branche git checkout –b new_cool_feature...  à partir de la branche du projet principal. Ensuite vous faite plusieurs modifications et commiter régulièrement votre avancement.  

De l'autre côté, plusieurs personnes de votre équipe ont également commiter et même terminer des fonctionnalités qu'ils ont déjà poussé sur la branche projet.  

Entretemps, votre fonctionnalité n'est pas encore terminée mais vous souhaitez profiter des mises à jour de votre équipe. Dans ce vous avez deux possibilités :   

  • Merger  ou 

  • Rabaser   

Avec git rebase, vous allez pouvoir fusionner les modifications distantes et puis git va appliquer vos modifications en dernier lieu. L'option rebase  permet d'avoir une historique plus clair des modifications. (attention par contre à  ne pas faire de rebase sur une branche public car git va procéder à une récriture de l'historique qui peut souvent être source de problème pour les autres développeurs au moment où il vont de nouveau récupérer la branche).  

Alors il est conseiller d'utiliser git merge pour les branches publiques.    

Supprimer une branche :  

Pour supprimer une branche locale,  utiliser la commande ci-dessous :  

  • git branch –D  my_branch  

 

Restaurer une branche   

Avec Git, tous les modifications sont historisées, l'élément principal est le numéro de commit, qui correspond une arborescence spécifique. 

À partir d'un numéro de commit, on peut restaurer une branche et toute l'historique qui est associée. Par exemple :  

  • git checkout #numero_commit : permet de créer une brancher détachée  à partir du numéro de commit  

  • Ensuite git checkout –b  my_restored_branch :  création d'une nouvelle branche à partir de la branche détaché 

 

Connaitre l'origine de votre branche 

git reflog --date=local --all | grep from 

 

Afficher la liste des branches 

 A) git show-branch –list : la liste de branch 

Cf. https://git-scm.com/docs/git-show-branch 

 

Consulter l'historique des commits 

Taper la commande  git log 

 

Si cette article vous a plus n'hésitez pas à laisser des commentaires.