Git/Visualiser le contenu de votre dépôt local
Avant de commencer à travailler vraiment sur le projet, nous allons déjà voir comment connaître l'état de notre dépôt.
Un dépôt est complexe, entre les commits, les branches, les tags, l'espace, les dépôts distants, le HEAD, le stash... Il est impératif de savoir comment, à tout moment, savoir où Git en est.
Dans ce chapitre, nous allons voir les différents outils qui sont à votre disposition pour comprendre dans quel état est votre dépôt local. Pour expérimenter les exemples que nous donnons, nous vous recommandons de travailler sur une copie d'un dépôt distant qui a déjà un historique fourni. En effet, ça sera bien plus représentatif qu'avec un dépôt vide où à peine créé.
Nous allons travailler suite à un
git clone https://gerrit.wikimedia.org/r/p/test/mediawiki/extensions/examples.git
git log
[modifier | modifier le wikicode]Git log est la principale commande à connaître. Commençons par son utilisation la plus simple
git log
commit a59a042e1a7f1474a11c0bd2585ab2eb71b85c47 Merge: 5c511f2 12c8449 Author: Darkdadaah <example@yahoo.fr> Date: Sat May 25 08:49:21 2013 +0000 Merge "TEST 1" commit 12c84495c13b7bbf10f7d85fd9d9d2cb129a7952 Author: jackpotte <example@gmail.com> Date: Sat May 25 10:31:05 2013 +0200 TEST 1 Hackathon test. Change-Id: I079fe9c5ef6eee1e2e12a653bbb5cec474d28ec0 commit 5c511f28b89ee2a9cc46707802668b01bf54dec0 Author: Darkdadaah <example@yahoo.fr> Date: Sat May 25 10:19:44 2013 +0200 New file to "leave a trace" Change-Id: I5de6da00ad9712599e21ff630eee7d72d7177772 commit 27f4317fa4c325c98404e3cc8d443a164279b041 Author: Udit Saxena <example2@gmail.com> Date: Mon Apr 1 23:10:47 2013 +0530 Second try. Now third. Change-Id: Ic7cddbf04394c08bfe5cd240bf48e3641e7feaa5
Par défaut, git utilise less
pour vous permettre d'afficher les logs pages par pages. Ici, nous voyons 4 commits faits par 4 contributeurs différents. L'historique s'affiche dans l'ordre chronologique inversé : les modifications récentes sont au dessus des modifications anciennes.
Essayez d'ajouter de la couleur avec
git log --color
Vous pouvez voir l'historique des branches et des fusions avec
git log --graph
Vous pouvez voir l'historique en version réduite (une ligne par commit)
git log --oneline
Nous verrons plus tard comment utiliser log pour obtenir les informations qu'on souhaite. N'hésitez pas à combiner les options.
git log --oneline --graph --color
* 0eccb68 Increased version number * fc5fdf8 Working on http://www.mediawiki.org/wiki/Git/Tutorial Doing an unimportant commit And an unimportant amendment Change-Id: I5a8a912234ea1dae6adae5a13717faafab707a76 * 62505b3 Merge "Word-wrapped and punctuated comments." |\ | * 563788d Word-wrapped and punctuated comments. * | 506432a So simple if you have a tutorial and someone who shows you how it works and what you shouldn't forget |/ * 6609666 Merge "Implemented the getVersion function" |\ | * b1f8deb Implemented the getVersion function * | 70e59e5 Merge "Revert "Added a get version method"" |\ \ | * | 36af5f2 Revert "Added a get version method" * | | 14b21cf Merge "Change README to split the lines in more logical places" |\ \ \ | * | | 4090572 Change README to split the lines in more logical places | | |/ | |/| * | | 93ecbf0 Merge "removed a white space trailing the comment" |\ \ \ | * | | 4d3d534 removed a white space trailing the comment | |/ /
Afficher le résumé du dernier commit
[modifier | modifier le wikicode]git log -1
Afficher les résumés des commits du dossier courant
[modifier | modifier le wikicode]git log .
Rechercher une branche depuis un commit
[modifier | modifier le wikicode]Pour retracer l'historique des évènements il est parfois nécessaire de retrouver la branche (et la pull request) qui contenait un code. Or, l'historique (git blame
) ne contient que des commits.
Pour recherche la pull request qui contenait un commit donné (ex : 0eccb68) :
git log --merges --ancestry-path --oneline 0eccb68..master | grep 'pull request' | tail -n1 | awk '{ print $5 }';
Pour obtenir le nombre de lignes ajoutées et supprimées d'un contributeur donné[1] :
git log --author="mon_nom" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -
Rechercher un fichier supprimé
[modifier | modifier le wikicode]git log --diff-filter=D --summary | grep delete |grep nom_du_fichier
Rechercher une chaine de caractères ajoutée ou supprimée dans tous les diffs
[modifier | modifier le wikicode]git log -Sma_chaine
git gui
[modifier | modifier le wikicode]Il existe une extension git qui vous permet de visualiser votre dépôt local à l'aide d'un outil graphique. La plupart du temps, cette extension doit être installée en plus de git.
git gui
Une fenêtre s'ouvre, elle présente peu d'informations car nous n'avons pas encore de modifications à publier.
Ouvrez le menu « Dépôt » puis sélectionnez « Voir l'historique de toutes les branches ».
La fenêtre qui s'ouvre nous donne l'arborescence graphique qui nous permet de voir, dans l'ordre chronologique, toutes les modifications qui ont été faites.
gitweb
[modifier | modifier le wikicode]Gitweb est l'interface web officielle intégrée dans git. Elle permet de visualiser le contenu d'un dépôt git depuis tout navigateur web.
git instaweb
Votre navigateur devrait s'ouvrir automatiquement à l'adresse http://127.0.0.1:1234