Démarrer avec Git et GitHub
Tutoriel : Les Bases de Git avec GitHub
Bienvenue dans ce tutoriel sur les bases de Git avec GitHub. Ce guide vous aidera à apprendre à initialiser un projet, faire des commit, et à utiliser les commandes pull et push. Chaque section sera accompagnée de liens vers la documentation officielle pour approfondir vos connaissances.
1. Installation de Git
Windows
Téléchargez Git pour Windows :
Rendez-vous sur gitforwindows.org.
Téléchargez l'installateur et lancez-le.
Installation :
Suivez les instructions de l'installateur.
Acceptez les paramètres par défaut pour la plupart des options.
Une fois l'installation terminée, ouvrez "Git Bash" pour vérifier l'installation en tapant :
git --version
Mac
Utilisation de Homebrew :
Si Homebrew n'est pas installé, installez-le en suivant les instructions sur brew.sh.
Ouvrez un terminal et tapez :
brew install git
Vérifiez l'installation avec :
git --version
Utilisation du package officiel :
Téléchargez le package Git depuis git-scm.com.
Ouvrez le package et suivez les instructions d'installation.
Vérifiez l'installation avec :
git --version
Linux
Utilisation du gestionnaire de paquets :
Ouvrez un terminal et utilisez la commande adaptée à votre distribution :
# Debian/Ubuntu sudo apt-get install git # Fedora sudo dnf install git # Arch Linux sudo pacman -S git
Vérifiez l'installation avec :
git --version
2. Configuration de Git
Après l'installation, configurez votre nom d'utilisateur et votre adresse e-mail :
git config --global user.name "Votre Nom"
git config --global user.email "votre.email@example.com"
Vérifiez la configuration :
git config --list
3. Initialiser un Projet
Créer un nouveau répertoire et y naviguer :
mkdir mon-projet cd mon-projet
Initialiser un dépôt Git :
git init
Créer un fichier
README.md
:echo "# Mon Projet" >> README.md
Ajouter le fichier au suivi Git :
git add README.md
Faire un premier commit :
git commit -m "Premier commit : Ajout du fichier README.md"
4. Travailler avec GitHub
Création d'un dépôt sur GitHub
Rendez-vous sur GitHub et connectez-vous.
Cliquez sur le bouton "+" en haut à droite et sélectionnez "New repository".
Donnez un nom à votre dépôt et cliquez sur "Create repository".
Lier le dépôt local à GitHub
Ajouter l'URL du dépôt GitHub comme remote :
git remote add origin https://github.com/votre-nom-utilisateur/mon-projet.git
Pousser le contenu local vers GitHub :
git push -u origin master
-u
crée une association entre la branche locale et la branche distante, facilitant les futursgit push
etgit pull
.
5. Travailler sur le Projet
Faire des modifications et des commits
Modifiez ou créez des fichiers dans votre projet.
Vérifiez l'état du dépôt :
git status
Ajouter les modifications :
git add nom-du-fichier
Pour ajouter tous les fichiers modifiés :
git add .
Faire un commit avec un message descriptif :
git commit -m "Description de la modification"
Envoyer les modifications sur GitHub
Pousser les commits vers le dépôt distant :
git push
6. Synchroniser les Modifications
Récupérer les modifications depuis GitHub
Pour obtenir les dernières modifications faites par d'autres contributeurs :
git pull
Cela fusionne les modifications distantes dans votre branche locale.
Gérer les conflits
Si un conflit survient, Git vous informera des fichiers en conflit. Ouvrez ces fichiers dans votre éditeur pour résoudre les conflits manuellement.
Après résolution, marquez les conflits comme résolus :
git add fichier-en-conflit
Finalisez la fusion avec un commit :
git commit -m "Résolution des conflits"
7. Documentation et Ressources Supplémentaires
Pour plus de détails et d'options avancées, consultez la documentation officielle de Git et GitHub :
Résumé des Commandes
Initialiser un dépôt Git :
git init
Ajouter des fichiers :
git add
Faire un commit :
git commit -m "message"
Ajouter un dépôt distant :
git remote add origin URL
Pousser des modifications :
git push
Récupérer des modifications :
git pull
Vérifier l'état :
git status
Système de Branches dans Git
Le système de branches est une fonctionnalité clé de Git qui permet de travailler sur différentes versions d'un projet de manière isolée. Voici une explication détaillée du système de branches et comment l'utiliser.
1. Qu'est-ce qu'une Branche ?
Une branche est une version distincte de votre code. Par défaut, Git crée une branche principale appelée master
ou main
. Les branches permettent de développer des fonctionnalités, corriger des bugs, ou expérimenter des idées sans affecter le code stable de la branche principale.
2. Créer et Utiliser des Branches
Créer une nouvelle branche
Créer une branche :
git branch nom-de-la-branche
Lister toutes les branches :
git branch
La branche actuelle est marquée d'un astérisque (*) dans la liste.
Changer de branche :
git checkout nom-de-la-branche
Créer et basculer sur une nouvelle branche en une seule commande :
git checkout -b nom-de-la-branche
Travailler sur une Branche
Effectuer des modifications, les ajouter et les committer comme d'habitude :
git add fichier-modifie git commit -m "Message du commit"
Fusionner des Branches
Basculer sur la branche où vous souhaitez fusionner les modifications (généralement
main
oumaster
) :git checkout main
Fusionner une autre branche dans la branche actuelle :
git merge nom-de-la-branche
Cela applique les commits de
nom-de-la-branche
à la branche actuelle.
Résoudre les Conflits de Fusion
Si des conflits surviennent lors de la fusion, Git vous informera des fichiers en conflit. Ouvrez ces fichiers dans votre éditeur pour résoudre les conflits manuellement.
Après avoir résolu les conflits, marquez les conflits comme résolus :
git add fichier-en-conflit
Finalisez la fusion avec un commit :
git commit -m "Résolution des conflits"
Supprimer une Branche
Après avoir fusionné une branche et n'en ayant plus besoin, vous pouvez la supprimer :
git branch -d nom-de-la-branche
Utilisez
-D
au lieu de-d
pour forcer la suppression d'une branche non fusionnée.
3. Utilisation Avancée des Branches
Suivi des branches distantes
Lister les branches distantes :
git branch -r
Créer une branche locale suivie d'une branche distante :
git checkout -b nom-de-la-branche origin/nom-de-la-branche-distante
Rebasage
Rebaser une branche pour intégrer les modifications de la branche
main
:git checkout nom-de-la-branche git rebase main
Le rebasage réapplique les commits de votre branche sur le dernier commit de
main
.
Résoudre les conflits comme lors d'une fusion, puis poursuivre le rebasage :
git rebase --continue
Stash
Sauvegarder temporairement des modifications sans les committer :
git stash
Récupérer les modifications sauvegardées :
git stash pop
Documentation Officielle
Pour plus d'informations sur les branches, consultez la documentation officielle de Git :
Résumé des Commandes de Branches
Créer une branche :
git branch nom-de-la-branche
Basculer de branche :
git checkout nom-de-la-branche
Créer et basculer sur une branche :
git checkout -b nom-de-la-branche
Fusionner une branche :
git merge nom-de-la-branche
Supprimer une branche :
git branch -d nom-de-la-branche
Bonnes Pratiques avec Git et GitHub
L'utilisation efficace de Git et GitHub nécessite l'adoption de bonnes pratiques. Voici quelques conseils pour vous aider à tirer le meilleur parti de ces outils et à maintenir un code propre et bien organisé.
1. Utilisez des Commits Atomiques
Commits atomiques : Un commit atomique signifie qu'il ne contient qu'une seule tâche ou une seule modification logique. Cela rend l'historique Git plus lisible et facilite le débogage.
Bon exemple :
git commit -m "Ajout de la fonction de connexion utilisateur" git commit -m "Correction du bug de la page d'accueil"
Mauvais exemple :
git commit -m "Ajout de la fonction de connexion utilisateur et correction du bug de la page d'accueil"
2. Écrivez des Messages de Commit Clairs et Significatifs
Les messages de commit doivent décrire clairement ce qui a été modifié et pourquoi. Utilisez l'impératif présent pour décrire l'action du commit.
Bon exemple :
git commit -m "Ajoute la fonctionnalité de réinitialisation du mot de passe"
Mauvais exemple :
git commit -m "Fix bug"
3. Travaillez sur des Branches
Utilisez des branches pour développer des fonctionnalités, corriger des bugs ou expérimenter. Cela permet de maintenir la branche principale (main
ou master
) stable et déployable à tout moment.
Créer une branche pour une nouvelle fonctionnalité :
git checkout -b feature/nouvelle-fonctionnalite
Créer une branche pour corriger un bug :
git checkout -b bugfix/correction-du-bug
4. Mettez à Jour Régulièrement Votre Branche
Pour éviter les conflits et rester à jour avec les modifications des autres contributeurs, intégrez régulièrement les changements de la branche principale dans votre branche de travail.
Rebaser votre branche avec
main
:git checkout main git pull git checkout votre-branche git rebase main
Alternative avec merge :
git checkout main git pull git checkout votre-branche git merge main
5. Résolvez les Conflits Rapidement
Lorsqu'un conflit survient, résolvez-le rapidement pour éviter de compliquer l'historique du projet. Communiquez avec votre équipe si nécessaire pour comprendre et résoudre les conflits efficacement.
6. Utilisez .gitignore
.gitignore
Utilisez un fichier .gitignore
pour exclure les fichiers et répertoires qui ne doivent pas être suivis par Git, tels que les fichiers temporaires, les dépendances compilées et les fichiers de configuration spécifiques à l'environnement.
Exemple de
.gitignore
:# Fichiers de log *.log # Fichiers de configuration d'environnement .env # Dépendances de Node.js node_modules/ # Fichiers compilés *.class *.o
7. Faites des Pull Requests (PR) pour les Revues de Code
Lorsque vous travaillez sur un projet collaboratif, utilisez des pull requests pour proposer des modifications. Cela permet à d'autres développeurs de revoir et de discuter des modifications avant qu'elles ne soient intégrées dans la branche principale.
Créer une pull request sur GitHub :
Poussez votre branche vers GitHub.
Accédez à votre dépôt sur GitHub.
Cliquez sur "Pull requests" puis "New pull request".
Sélectionnez votre branche et créez la pull request.
8. Étiquetez Vos Versions
Utilisez des tags pour marquer des points spécifiques de votre historique comme des versions ou des releases. Cela facilite la gestion des versions et le déploiement.
Créer un tag :
git tag -a v1.0 -m "Version
1.0"
- **Pousser un tag vers GitHub :**
```bash
git push origin v1.0
9. Documentez Votre Projet
Assurez-vous de bien documenter votre projet avec un fichier README.md
clair et détaillé. Indiquez les instructions d'installation, d'utilisation, les contributions et les informations de licence.
Exemple de
README.md
:# Nom du Projet ## Description Brève description du projet. ## Installation Instructions pour installer les dépendances et configurer le projet. ## Bash git clone https://github.com/votre-nom-utilisateur/nom-du-projet.git cd nom-du-projet npm install ## Utilisation Instructions pour utiliser le projet. npm start ## Contribuer Indications pour contribuer au projet. ## Licence Informations sur la licence.
10. Protégez la Branche Principale
Configurez des protections de branche sur GitHub pour empêcher les commits directs sur la branche principale. Cela peut inclure l'obligation de passer par des pull requests et d'obtenir des approbations avant de fusionner.
Configurer les protections de branche :
Allez dans les "Settings" de votre dépôt sur GitHub.
Sous "Branches", configurez les règles de protection pour
main
oumaster
.
11. Communiquez et Collaborez
Utilisez les fonctionnalités de collaboration de GitHub comme les issues et les discussions pour suivre les tâches, signaler les bugs, et discuter des améliorations.
Créer une issue :
Allez dans l'onglet "Issues" de votre dépôt.
Cliquez sur "New issue" et décrivez le problème ou la tâche.
Conventions de Commits (Conventional Commits)
Les conventions de commits sont un ensemble de règles pour structurer les messages de commit de manière standardisée. Ces conventions facilitent la lecture et la compréhension de l'historique des commits, améliorent l'automatisation des processus de versionnage et de déploiement, et favorisent une collaboration plus efficace.
1. Structure des Messages de Commit
Un message de commit selon les conventions de commits se compose de trois parties principales : le type, la description courte, et, optionnellement, un corps et un pied de page.
<type>[optional scope]: <description>
[optional body]
[optional footer(s)]
Types de Commits
feat : Une nouvelle fonctionnalité.
fix : Une correction de bug.
docs : Des modifications uniquement concernant la documentation.
style : Des modifications qui n'affectent pas le sens du code (indentation, formatage, etc.).
refactor : Une refactorisation du code qui n'ajoute pas de fonctionnalité ni ne corrige de bug.
perf : Une modification du code qui améliore les performances.
test : Ajout ou modification de tests.
build : Des modifications affectant le système de build ou des dépendances externes (npm, webpack, etc.).
ci : Des modifications concernant l'intégration continue.
chore : Des tâches diverses qui ne modifient ni les tests ni le code source.
revert : Revert d'un commit précédent.
Exemple de Message de Commit
feat(auth): ajouter la fonctionnalité de réinitialisation de mot de passe
Cette fonctionnalité permet aux utilisateurs de réinitialiser leur mot de passe via un lien envoyé par e-mail. Elle inclut :
- Génération de jetons de réinitialisation
- Envoi de courriels avec le lien de réinitialisation
- Formulaire de réinitialisation de mot de passe
BREAKING CHANGE: La table des utilisateurs a été modifiée pour inclure un champ de jeton de réinitialisation.
2. Avantages des Conventions de Commits
Historique de Commits Plus Clair
Les conventions de commits permettent d'avoir un historique de commits structuré et lisible. Chaque message de commit fournit une indication claire de l'impact de la modification.
Versionnage Sémantique Automatisé
En suivant les conventions de commits, il est possible d'automatiser le versionnage sémantique (SemVer). Les outils comme semantic-release analysent les messages de commit pour déterminer automatiquement les versions majeures, mineures et correctives.
Génération Automatique du Changelog
Les messages de commit bien structurés permettent de générer automatiquement des changelogs détaillés en utilisant des outils comme conventional-changelog.
3. Utilisation des Conventions de Commits
Pré-commits Git Hooks
Pour s'assurer que tous les développeurs respectent les conventions de commits, utilisez des hooks Git avec des outils comme commitlint et husky.
Installer commitlint et husky :
npm install --save-dev @commitlint/{config-conventional,cli} npx husky install
Configurer commitlint :
echo "module.exports = {extends: ['@commitlint/config-conventional']};" > commitlint.config.js
Ajouter un hook de pré-commit :
npx husky add .husky/commit-msg 'npx --no-install commitlint --edit "$1"'
Exemple de Configuration
package.json :
{ "scripts": { "prepare": "husky install" }, "devDependencies": { "@commitlint/cli": "^13.0.0", "@commitlint/config-conventional": "^13.0.0", "husky": "^7.0.0" } }
4. Résumé des Commandes et Bonnes Pratiques
Types de commits :
feat
,fix
,docs
,style
,refactor
,perf
,test
,build
,ci
,chore
,revert
.Message de commit :
<type>[optional scope]: <description> [optional body] [optional footer(s)]
Outils recommandés :
Dernière mise à jour
Cet article vous a-t-il été utile ?