Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| dev:git:git_log_gestion_historique [2023/09/19 07:43] – supprimée - modification externe (Date inconnue) 127.0.0.1 | dev:git:git_log_gestion_historique [2023/09/19 10:37] (Version actuelle) – yoann | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | {{tag> | ||
| + | |||
| + | : | ||
| + | |||
| + | ====== Historique git ====== | ||
| + | |||
| + | Git est un gestionnaire de révision ou **CVS**((Control Revision System)), son principal objectif est de conserver l' | ||
| + | * De savoir qui à contribuer à quoi ; | ||
| + | * De déterminer où des bugs ont été introduits ; | ||
| + | * D' annuler des modifications problématiques etc. | ||
| + | |||
| + | La principale commande permettant de consulter l' | ||
| + | |||
| + | Les arguments (ou options) disponibles pour la commande **git log** se répartissent en deux catégories : | ||
| + | * La mise en forme des enregistrements ou formatage de l' | ||
| + | * Le filtrage des enregistrements. | ||
| + | |||
| + | |||
| + | Quelques options largement utilisées: | ||
| + | |||
| + | ^ **%%--name-status%%** | affiche pour chaque commit le nom des fichiers modifiés. | | ||
| + | ^ **%%--oneline%%** | Affiche sur une seule ligne lesi nformations essentielles du commit. | | ||
| + | ^ **%%--decorate%%** | Affiche les références(pointeurs tags et branches). | | ||
| + | ^ **-p** | Affiche le patch appliqué par chaque commit. | | ||
| + | ^ **%%--stat%%** | Affiche pour chaque fichier modifié les statistiques. | | ||
| + | ^ **%%--graph%%** | Souvent utilisé avec **%%--oneline%%** pour visualiser le graph des branches. | | ||
| + | |||
| + | |||
| + | ===== Formater la sortie ===== | ||
| + | |||
| + | L' | ||
| + | |||
| + | ^ %H | SHA-1, Condensat complet du commit | ||
| + | ^ %h | SHA-1, condensat abrégé du commit | ||
| + | ^ %T | SHA-1, condensat de l' | ||
| + | ^ %t | SHA-1, condensat abrégé de l' | ||
| + | ^ %P | SHA-1, Condensat complet des parents | | ||
| + | ^ %p | SHA-1, Condensat abrégé des parents | ||
| + | ^ %an | Nom de l' | ||
| + | ^ %ae | email de l' | ||
| + | ^ %ad | Date renseignée par l' | ||
| + | ^ %ar | Date relative de l' | ||
| + | ^ %cn | Nom du validateur | ||
| + | ^ %ce | Mail du validateur | ||
| + | ^ %cd | Date du validateur | ||
| + | ^ %cr | Date relative du validateur | ||
| + | ^ %s | Sujet du commit | ||
| + | |||
| + | Le formatage peut également définir des couleurs parmi les couleurs standard : normal, black, red, green, yellow, blue, magenta, cyan et white. | ||
| + | |||
| + | <code bash> | ||
| + | |||
| + | </ | ||
| + | |||
| + | Pour les terminaux supportant les couleurs 24 bits les couleurs peuvent être décrites par les valeurs hexadécimales des composantes RVB: | ||
| + | |||
| + | <code bash> | ||
| + | # Utilise un gris %C(#808080) pour le formatage de la date | ||
| + | git --no-pager log --pretty=format:" | ||
| + | </ | ||
| + | |||
| + | {{git_log_graph_02.png}} | ||
| + | |||
| + | |||
| + | Ci dessous un exemple d' | ||
| + | |||
| + | <code bash> | ||
| + | git --no-pager log --pretty=format:" | ||
| + | </ | ||
| + | |||
| + | |||
| + | < | ||
| + | On peut [[dev: | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | ===== Filtrer la sortie ===== | ||
| + | |||
| + | Pour limiter la sortie aux **n** derniers commit insérer **-n**: | ||
| + | <code bash> | ||
| + | $ git log --oneline --stat -2 | ||
| + | </ | ||
| + | |||
| + | Ici les titres des deux derniers commits seront affichés avec les statistiques des fichiers modifiés. | ||
| + | |||
| + | Il est également possible de limiter l' | ||
| + | |||
| + | <code bash> | ||
| + | $ git log --since=2.weeks | ||
| + | </ | ||
| + | |||
| + | On peut également choisir de n' | ||
| + | %%** | ||
| + | |||
| + | ===== Rechercher des modifications ===== | ||
| + | |||
| + | Si l'on souhaite afficher les commits ayant introduit des modifications contenant la chaîne de caractères " | ||
| + | |||
| + | <code bash> | ||
| + | git log -Sexemple | ||
| + | </ | ||
| + | |||
| + | La commande ci-dessus retournera les commits comportant des patchs ayant introduits ou retirés la chaîne " | ||
| + | |||
| + | On peut placer en dernière option de git log est un chemin (fichier ou répertoire). Cette option est précédée d'un séparateur double tirets %%**--**%%: | ||
| + | |||
| + | <code bash> | ||
| + | $ git log --oneline --name-status -- lib/ | ||
| + | </ | ||
| + | |||
| + | La commande ci-dessus n' | ||
| + | |||
| + | ===== Mise en forme de l' | ||
| + | |||
| + | Ci dessous un alias à ajouter dans le fichier de configuration ~/ | ||
| + | |||
| + | < | ||
| + | [alias] | ||
| + | lg = log --graph --abbrev-commit --decorate --format=format:' | ||
| + | </ | ||
| + | |||
| + | Cette mise en forme présente un graph avec l' | ||
| + | |||
| + | ===== Images et graphes ===== | ||
| + | |||
| + | * gitk | ||
| + | * Sourcetree | ||
| + | |||
| + | ===== Références ===== | ||
| + | |||
| + | * Pro Git, seconde édition, Scott Chacon et Ben Straub | ||
| + | * http:// | ||
| + | * [[https:// | ||
| + | * [[https:// | ||