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.
Git log est la principale commande à connaître. Commençons par son utilisation la plus simple
git log
Par défaut, git utilise codice_1 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
Afficher le résumé du dernier commit.
 git log -1
Afficher les résumés des commits du dossier courant.
 git log .
Rechercher une branche depuis un commit.
Pour retracer l'historique des évènements il est parfois nécessaire de retrouver la branche (et la ) qui contenait un code. Or, l'historique (codice_2) 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 }';
Rechercher un fichier supprimé.
 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.
 git log -Sma_chaine
git gui.
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.
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

Git/Windows
Configuration.
Après installation, trois raccourcis sont accessibles dans le menu démarrer :
Pour que Git se positionne par défaut dans le répertoire de votre choix à chaque ouverture, sous Windows faire un clic droit sur son raccourci, puis modifier le chemin du champ "démarrer dans".
TortoiseGit.
 est un client pour Git qui permet de gérer ses dépôts depuis l'explorateur Windows.
La vue des synchronisations permet de consulter la liste des fichiers modifiés ("Out ChangeList") avec le différentiel dans chacun si on double-clique dessus (dans une fenêtre TortoiseGitMerge par défaut).
Elle permet aussi d'ouvrir l'option "Settings" en cliquant sur "Manage". Pour enregistrer une connexion dans ces paramètres, cliquer sur le sous-menu de "Git" appelé "Remote" (s'il n’apparaît pas, sortir et sélectionner un répertoire avant d'y retourner). L'URL du dépôt peut être de la forme :
En cas d'erreurs SSH, se reporter au wikilivre "Le système d'exploitation GNU-Linux/Le serveur de shell distant SSH#Problèmes connus".
Modifier les permissions d'un fichier.
Windows ne gère pas les permissions unix/linux des fichiers, permettant notamment de rendre exécutable un script bash.
Cependant, il est possible de modifier les permissions des fichiers au niveau "staged" de Git, de deux manières différentes.
Dans les deux cas, comme tout changement au niveau "staged", il faudra ensuite commiter les changements, et potentiellement pousser la modification sur le dépôt distant.
Avec TortoiseGit installé.
Si TortoiseGit est installé, les permissions sont modifiables dans la boîte de dialogue standard des propriétés du fichier par un clic droit sur le fichier, menu "Propriétés", onglet "Git".
En utilisant Git Bash.
Dans un terminal Git Bash :

Git/Exclure des fichiers du dépôt
Principe.
Souvent il y a des fichiers dans l'espace de travail qui ne sont pas souhaitables dans le dépôt :
Certains fichiers (notamment ceux générés lors de la compilation) sont en général situés dans un répertoire particulier, qu'il est possible d'exclure des dépôts Git.
".gitignore".
Pour dire à Git d'ignorer certains fichiers, il est possible de créer un fichier codice_3. Chaque ligne y représente une spécification (avec wildcards) des fichiers ou répertoires à ignorer. Des commentaires peuvent être ajoutés dedans sur les lignes débutant par un blanc ou un dièse :
Ce fichier sera ensuite automatiquement proposé pendant les commits, de sorte que tous les développeurs du dépôt auront la même liste de fichiers à ignorer.
De plus, certains caractères sont interprétés, comme le "!" en début de ligne qui signifie "sauf" (ex : exclure un dossier sauf un de ses fichiers).
"exclude".
Pour n’ignorer des fichiers que sur son propre poste, il faut les placer dans codice_4. Ainsi, ils ne seront jamais proposés pendant les commits.
Recherche.
Pour déterminer les fichiers ignorés d'un dossier ou pourquoi un fichier est ignoré, utiliser "check-ignore". Exemple :
 git check-ignore core/scripts/imagecopy.py -v

Git/Écrire des messages de commit
Rédaction.
Les bonnes pratiques sont :
Les utilisateurs de Vim peuvent rencontrer ce prérequis lors de l'installation de vim-git, ou bien en le définissant dans la configuration des messages de soumission Git :
 :set textwidth=72
Ceux de peuvent ajuster l'option colonne "Wrap" du menu "view", puis utiliser ^Q pour revenir à la ligne des paragraphes (s'assurer qu'il y a une ligne blanche après pour éviter le mélange avec les commentaires). Voici une commande shell pour ajouter 72 au menu afin de ne pas avoir à le faire glisser à chaque fois :
 $ defaults write com.macromates.textmate OakWrapColumns '( 40, 72, 78 )'
Consultation.
Ces résumés peuvent ensuite être lus via :
La distinction sujet/corps de texte de Git permet donc un confort de recherche d'historique par rapport à d'autres logiciels similaires comme Subversion.