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
etgit 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.