1. Installation de Git

a. Windows

Téléchargez Git depuis git-scm.com et suivez les instructions d'installation. Pendant l'installation, vous pouvez configurer Git Bash comme terminal par défaut.

b. Linux (Ubuntu/Debian)

"sudo apt-get update" "sudo apt-get install git"

c. MacOS

Installez Git via Homebrew : "brew install git"


2. Configuration initiale

Une fois Git installé, configurez vos informations d'utilisateur (nom et email), qui seront associés aux commits que vous réalisez. "git config --global user.name 'Votre Nom'" "git config --global user.email 'votre.email@example.com'"

Configurez également votre éditeur de texte par défaut pour les messages de commit : "git config --global core.editor 'code --wait'"


3. Les bases de Git

a. Initialiser un dépôt Git

Pour suivre les changements dans un projet, vous devez d'abord initialiser un dépôt Git dans le répertoire du projet. "git init"

b. Cloner un dépôt existant

Pour cloner un projet existant depuis un serveur distant : "git clone <url_du_depot>"

c. Vérifier l'état du dépôt

La commande git status permet de voir l'état actuel du dépôt, comme les fichiers modifiés ou non suivis. "git status"

d. Suivre et indexer des fichiers

Avant de valider des changements dans l'historique du projet, vous devez indexer les fichiers avec git add. "git add <fichier>" "git add ." # Pour ajouter tous les fichiers modifiés

e. Valider des modifications (commit)

Après avoir ajouté les fichiers à l'index, vous pouvez valider les changements dans l'historique du dépôt avec git commit. "git commit -m 'Message décrivant les changements'"

f. Voir l'historique des commits

Pour afficher l'historique des commits du projet : "git log"


4. Travailler avec des branches

a. Créer une branche

Les branches permettent de travailler sur des fonctionnalités ou corrections indépendamment de la branche principale (main ou master). "git branch <nom_branche>"

b. Changer de branche

Pour passer à une autre branche : "git checkout <nom_branche>"

c. Fusionner des branches

Une fois le travail terminé dans une branche, vous pouvez la fusionner avec la branche principale : "git checkout main" # Passez d'abord à la branche principale "git merge <nom_branche>"


5. Travailler avec un dépôt distant

a. Ajouter un dépôt distant

Pour connecter votre dépôt local à un dépôt distant (par exemple sur GitHub ou GitLab) : "git remote add origin <url_du_depot_distant>"

b. Envoyer des changements vers le dépôt distant (push)

Pour envoyer vos commits locaux vers le dépôt distant : "git push origin <nom_branche>"

c. Récupérer des modifications depuis un dépôt distant (pull)

Pour récupérer les dernières modifications depuis le dépôt distant : "git pull origin <nom_branche>"


6. Annuler des changements

a. Annuler des modifications locales non validées

Si vous avez modifié un fichier mais que vous voulez revenir à l'état précédent : "git checkout -- <fichier>"

b. Réinitialiser l'index

Si vous avez ajouté un fichier à l'index mais que vous souhaitez annuler cette action : "git reset <fichier>"

c. Annuler un commit

Pour annuler un commit récent sans supprimer les modifications : "git reset --soft HEAD^"

Pour annuler un commit et effacer les modifications associées : "git reset --hard HEAD^"


7. Collaboration et résolution des conflits

a. Conflits de fusion

Lorsqu'une même ligne de code a été modifiée dans deux branches différentes, un conflit survient lors de la fusion. Git marquera les sections conflictuelles dans les fichiers. Vous devrez manuellement choisir quelle version garder, puis : "git add <fichier>" "git commit"

b. Rebasing

Le rebase permet de réappliquer vos commits locaux sur les derniers commits d'une branche distante, créant ainsi une histoire plus linéaire : "git pull --rebase origin main"


8. Bonnes pratiques Git

  • Faire des commits atomiques : Chaque commit doit se concentrer sur une seule fonctionnalité ou correction.
  • Rédiger des messages de commit clairs : Les messages doivent être explicites et bien résumer les changements effectués.
  • Utiliser les branches : Travaillez dans des branches distinctes pour chaque fonctionnalité ou correction de bug.
  • Réviser l'historique avant un push : Utilisez git log et git status pour vérifier que tout est en ordre avant de pousser vos changements.

9. Outils complémentaires

a. .gitignore

Un fichier .gitignore permet de spécifier les fichiers et dossiers que Git doit ignorer. Exemple de fichier .gitignore : "node_modules/" "*.log"

b. Git Stash

git stash permet de sauvegarder temporairement des modifications non validées pour revenir à un état propre. "git stash" "git stash pop" # Pour restaurer les changements sauvegardés

c. Git Reflog

Git conserve un historique de toutes les actions même après des reset. Vous pouvez retrouver les commits effacés avec git reflog. "git reflog"


10. Git et GitHub

GitHub est une plateforme qui héberge des dépôts Git et permet une collaboration simplifiée grâce à des fonctionnalités comme les Pull Requests, les Issues, et la gestion des équipes.

  • Fork : Créez une copie d’un dépôt pour y contribuer.
  • Pull Request : Proposez des changements pour qu'ils soient fusionnés dans le dépôt original.

11. Conclusion

Git est un outil puissant pour gérer l’historique des projets et collaborer efficacement. Maîtriser les commandes de base ainsi que les bonnes pratiques vous aidera à être plus productif tout en évitant des erreurs coûteuses dans vos projets de développement.