Git/Visualiser le contenu de votre dépôt local

< Git

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

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
git log -1

Afficher les résumés des commits du dossier courant

modifier
git log .

Rechercher une branche depuis un commit

modifier

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
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
git log -Sma_chaine

git gui

modifier
  Paquet logiciel

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

Références

modifier