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