Rédacteur(s) : Philippe Mariano
[Mise à jour le 19/8/2023]
config | init | add | commit | revert | status | log |
branch | checkout | merge | remote | push | pull |
git --version # Exemple de résultat : "git version 2.25.1.windows.1" indique que git est correctement installé.
Git est packagé pour la plupart des distributions Linux, on vérifiera la version avant de faire une mise à jour avec les commandes suivantes.
git --version # Exemple de résultat sur un Raspberry Pi : git version 2.20.1 sudo apt install git # Exemple de résultat : git est déjà la version la plus récente (1:2.20.1-2+deb10u1).
git config --global user.name "Prénom Nom" git config --global user.email "mon_mail"
add | commit | revert | config | init | log | status |
Créer un répertoire nom_rep et placer un fichier nom_fichier.ext.
Exemple : le fichier index.html est situé dans le répertoire testgit
Exemple
git init
Exemple : dépôt Git vide !
git status
Exemple : avant d'avoir ajouté le fichier index.html à Git (les informations ci-dessous sont précisées plus loin)
git add nomfichiers git commit -m "texte explicatif"
Exemple : Après avoir écrit du code dans un fichier index.html, on l'ajoute à la zone de transit puis on le valide.
# Pour ajouter tous les fichiers du répertoire de travail dans la zone d'index git add . # -a demande à Git de mettre à jour les fichiers existants # dans sa zone de transit(index) git commit -am "texte explicatif" # pour faire un commit sans être l'auteur du dépôt git commit -am "texte explicatif" --author "nom<adresse_mail>" # Pour modifier le message du dernier commit faire git commit --amend -m "Nouveautexte explicatif" # Pour modifier le nom de l'auteur du dernier commit git commit --amend --author "nom<adresse_mail>"
Résumé
git log # affiche tous les commits git log -2 # limite l'affichage aux deux derniers commits git log -p -2 # comme ci-dessus et affiche les modifications
Exemple : deux commits on été réalisés sur le fichier index, dans l'ordre 29e66ab puis 12fe1e2.
Il est possible de se positionner sur un commit antérieur pour par exemple trouver la source d'une erreur apparue dans le dernier commit.
git checkout SHAduCommit # SHA (acronyme de Secure Hash Algorithm) est associé à plusieurs fonctions de hachage # cryptographiques. Unique, il sert d'identifiant au commit.
Exemple : étant sur le dernier commit, on se positionne sur le premier.
Il est possible de changer d'avis et d'annuler un commit par :
git revert SHAduCommit # annulation du commit ayant pour identifiant SHAduCommit git revert HEAD # annulation du dernier commit
git reset --hard # à utiliser avec précaution
Une branche est une copie du projet initial. Elle permet de diverger de la ligne principale (master) pour continuer à travailler sans impacter cette ligne (faire des essais, travailler à plusieurs, etc.).
branch | checkout | merge |
git branch nombranche # Exemple : git branch backgroundcolor
git branch
Exemple
git checkout nombranch # Exemple : git checkout backgroundcolor permet de passer sur la branche backgroundcolor
Exemple
git checkout master # 1 git merge nombranche # 2 git branch -d nombranche # 3
Exemple : un répertoire style, contenant un fichier style.css a été ajouté sur la branche backgroundcolor du projet testgit.
git checkout master git merge backgroundcolor
git branch -d backgroundcolor
Pour supprimer le dépôt git du répertoire de travail, il suffit de supprimer le répertoire caché .git. Sous W10, celui-ci est affiché en cochant Eléments masqués dans le menu Affichage de l'explorateur de fichiers.
blame | show |
git blame a pour fonction générale d'afficher les métadonnées d'auteur associées à des lignes de commit spécifiques dans un fichier.
git blame nom_fichier
Exemple : dans le fichier index.html toutes les modifications ont été faites par Philippe Mariano
git show est un utilitaire de ligne de commande utilisé pour afficher des détails supplémentaires sur les objets Git, comme les blobs, les arborescences, les tags et les commits.
git show
Exemple : on voit ci-dessous qu'un fichier style/style.css a été ajouté au projet et son contenu
Créer un fichier .gitignore et y placer le nom de tous les fichiers qui ne doivent pas être indexés. Voir la vidéo sur OpenClassrooms.
Voir la vidéo sur OpenClassrooms.
clone | remote | push | pull |
Exemple
Résultat
Il s'agit de créer un pont entre le dépôt distant (sur github) et le dépôt local (sur son poste) . Pour cela, on exécute la commande ci-dessous.
git remote add origin [url_du_dépôt_créé_par_github] # Indique à Git d'ajouter le dépôt # distant et de lui associer l'alias "origin" # origin est une convention de Git
Exemples
git remote add origin https://github.com/WebGE/test1.git # cette commande entrée dans le répertoire test1 # relie test1 local à test1 sur GitHub
git remote # cette commande permet de vérifier l'association
Exemple
git push -u origin master
Il est possible de télécharger l'intégralité d'un dépôt distant sur sa machine en utilisant la commande clone de Git.
Pour cela :
git clone [url_du_dépot_créé_par_github]
Exemple
La commande git remote permet de créer, d'afficher et de supprimer des connexions avec d'autres dépôts.
git remote # Permet de répertorier les connexions distantes avec d'autres dépôts. git remote -v # Idem ci-dessus mais inclut l'URL de chaque connexion. git remote add <name> <url> # Permet de créer une connexion avec un dépôt distant. git remote rm <name> # Permet de supprimer la connexion avec le dépôt distant nommé <nom>.
Exemple
git remote add origin https://github.com/WebGE/test1.git # Création d'une connexion vers un dépôt sur Github git remote add local 192.168.1.6 # Création d'une connexion avec un serveur git sur un NAS local # Le dépôt local est connectée à deux dépôts distants
Exemple
La commande git fetch télécharge des commits, des fichiers et des refs d'un dépôt distant vers le dépôt local. Le fetch est l'opération à réaliser lorsque l'on souhaite voir ce sur quoi tout le monde travaille.
La commande git pull est utilisée pour faire un fetch du contenu d'un dépôt distant pour le télécharger, puis pour mettre à jour immédiatement le dépôt local qui correspond à ce contenu. La commande git pull est en fait la combinaison de deux autres commandes, git fetch suivie de git merge.
Exemple
git pull origin master
Une fois que des modifications ont été faites, ajoutées à l'index et qu'un commit à été réalisé, on peut “pousser” les modifications vers le dépôt distant si l'initiateur du projet nous a accordé les droits d'accès(voir §5.6).
La commande git push est utilisée pour charger le contenu d'un dépôt local vers un dépôt distant.
git push origin master # pour transférer le contenu du dépôt local (origin) vers la branche Master (Github) git push origin <autrebranche> # origin <autrebranche> -> <autrebranche> distante
Pour proposer des modifications sur GitHub, il faut faire des pull requests.