Hvordan bruges Git Log til at formatere forpligtelseshistorikken?



Git er et værktøj, der hjælper med at organisere og administrere kildekoden til dine applikationer. Lær alt om git log format historie kommando og hvordan man bruger den.

I denne artikel vil vi diskutere nogle avancerede muligheder for at formatere og udskrive forpligtelseslogfilerne for at hente de oplysninger, du har brug for, i din projektjournalhistorik. Da vi allerede ved, fører en journal over de ændringer, der er forpligtet til projekthistorikken, skal vi nu undersøge flere måder, som kommandoen 'git log' er nyttig.

For det første skifter jeg til / tjekker 'feature1' -grenen for en bekvem og kortere historie.
Brug kommandoerne -





$cd myProj–Skift til git-projektet

$git checkout-funktion1– Spring til 'feature1'-grenen



1. Forpligt formatering

1.1 Print udskriftsindholdet pænt ud i et givet format

Syntaks: git-log - dejligt [=]

hvor, kan være en af oneline, kort, medium, fuld, fyldigere, e-mail, og format:
Hvornår = del er udeladt, er den som standard medium.

1.1.1 –pænt = online

Smukt print-log ind på en 'enkelt linje'
Kommando: git log --pretty = oneline
Formaterer output i rækkefølge:




Forpligtelse - Git-logformathistorik - Edureka

1.1.2 –skønt = kort

Formater udfør output 'kort' i formatet:
begå (refname)
Forfatter:



1.1.3 –pænt = medium

Kommando: git log --pretty = medium
Udskriv output-output i 'medium' format:
begå
Forfatter :
Dato:


1.1.4 –pæn = fuld

Kommando: git log --pretty = fuld
Output er i formatet:
begå (refname)
Forfatter:
Begå:


1.1.5 –pæn = fyldigere

Kommando: git log --pretty = fyldigere
begå (refname)
Forfatter:
Forfatterdato :
Begå:
CommitDate:


1.1.6 – ganske = e-mail

Kommando: git log --pretty = e-mail
Udskriv logoutput i e-mail-format:
Fra
Fra:
Dato:
Emne: [LAPPE]


1.1.7 –pænt = rå

Kommando: git log - ganske = rå
Raw-logoutputformatet viser hele commit nøjagtigt som lagret i commit-objektet.
begå
træ
forælder
forfatter
begå

1.1.8 –format:: Brugerdefineret formatering

Formatet giver dig mulighed for at specificere, hvilke oplysninger om det engagementsobjekt, du vil udskrive, i forpligtelsesoutputloggen
Lad os overveje de forskellige pladsholdere, som denne mulighed giver ligesom en 'C printf' funktion ved hjælp af kodestykker:

Kommando: git log --pretty = format: '% h% annonce | % s% d [% an] '--dato = kort
Outputformat:
| [forfatternavn]

% h = Forkortede hash-id / sha1commit id'er
% H = lange sha-1 id'er
%til = forfatterdato
% s = begå emnets titellinje
% d = referencemarkør (gren, tag) navne
% an = forfatternavn
-dato = kort: Udskriv kun datoen og ikke klokkeslættet i et læsbart format

Hvad med at gøre dette output mere menneskeligt venligt ved hjælp af farver.
Kommando:
git log --pretty = format: '% C (gul)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--dato = kort


Nogle andre pladsholdere, der bruges i ovenstående kodestykke, er:
% C (gul) : Drej følgende streng til gul
% Creset : Nulstil følgende streng tilbage til standardfarven (hvid)
% Cgreen : skift følgende streng til grøn
%Jeg tror: Skift følgende streng til rød
% Cblue: Gør forfatternavnet blå i farven

Du behøver ikke at huske og skrive hele kommandoen hver gang, bare brug et kort navn som git alias som vist nedenfor:
Kommando:
git config --global alias.c-hist 'log --pretty = format:'% C (gul)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short'

“C-hist” repræsenterer c tilpasset- hist ory
Så som du ville have bemærket, sætter jeg mit globale git-konfiguration fil med værdierne.

funktion overbelastning i c ++ eksempel

For at kontrollere historien for den aktuelle gren er alt, hvad du skal gøre, at køre kommandoen sådan:
Kommando: gå c-hist

1.2 –abbrev-commit: Forkort git commit hash-id

Kommando: git log --abbrev-commit
Det fulde 40-byte hexadecimale kommandoobjektnavn forkortes til standard 7-byte.


Lad os klubbe det med '- online'Mulighed for en bekvem visning, som sådan:
Kommando: git log --abbrev-commit --oneline

Hvad der er mere spændende er, at du også kan specificere byte-længden af ​​sha-1 id'er ved hjælp af '–abbrev =' som vist nedenfor:
Kommando: git log --abbrev-commit --abbrev = 5 --online



Det er klart, at de fremhævede sha-1-id'er reduceres til 5-byte-størrelse.

1.3 –no-abbrev-commit

Vis det fulde hexadecimale kommandoobjektnavn på 40 byte.
Dette negerer –Abbrev-begå og de muligheder, der indebærer
det som “–online”.
Kommando: git log --pretty = oneline --no-abbrev-commit



1.4 –relativ dato

Kommando: git log --relativ dato

Bemærk venligst, at denne fremhævede tid udsættes for ændringer med henvisning til den tid, du udfører kommandoen på dit system.

1.5 –dato =

Du kan også formatere datoen for forpligtelseslogfiler i en af ​​følgende formatindstillinger:

1.5.1 –dato = relativ

Kommando :git log --dato = relativ
Dette er synonymt med ovenstående kommando “git log --relativ dato”Og udskriver de samme forpligtelser.

1.5.2 –dato = lokal

Kommando : git-log - dato = lokal

1.5.3 –dato = iso

Kommando: git log --dato = iso

1.5.4 –dato = isostrik

Kommando: git log --dato = isostrik

1.5.5 –dato = rfc

Kommando: git-log - dato = rfc

1.5.6 –dato = kort

Kommando: git log --dato = kort

1.5.7 –dato = rå (viser datoen i sekunder)

Kommando: git log --dato = rå
Udskriv tiden som sekunder siden unix epoc tid (1. januar 1970) efterfulgt af tidszonen.

1.5.8 –dato = menneske

Kommando: git log --dato = menneske

1.5.9 –dato = unix

Viser datoen som unix epoc (UTC) tid.
Kommando: git log --dato = unix

1,6 –forældre

Udskriv også forældrene til hver forpligtelse i formatet:
Kommando: git log - forældre
Oneliner output kommando: git-log - forældre - online

Punkter, der skal bemærkes:
C366419 er en fusionsforpligtelse og har derfor henholdsvis 2 forældre: feeb30c og 4920adc
Ligeledes

1d67b50 er en fusionsforpligtelse, der er resultatet af fusion f2ff2e4 og abb694b
078f9f5 er en fusionsforpligtelse oprettet ved sammenfletning 9a2412e og ab3a5e5
Der henviser til, 86792c6 er den første forpligtelse, derfor ingen forælder.

1,7 - børn

Udskriv også børnene i formularen
Kommando: git log --børn --online

Bemærk :
006b9ce er den seneste forpligtelse, og derfor har ingen børn begået objekt endnu. Den næste ændring, du foretager og forpligter dig til denne gren, vil være undertegnet objekt for denne seneste sha-1-id.

1,8 –graf

Tegn en tekstbaseret grafisk repræsentation af begivenhedshistorikken før sha-1-id'erne.
Kommando: git log - graf
Forbedret oneliner output: git log - graf - online


Dette giver dig mulighed for at forstå, hvornår, hvordan og hvorfor og andre filialer blev flettet ind i den aktuelt tjekkede filial.

1.9 –show-lineær-break

Kommando: git log --show-lineær-break
Dette er en nyttig kommando til at angive en barriere mellem to på hinanden følgende forpligtelser, der ikke tilhører en lineær gren, med andre ord de forpligtelser, der kom fra forskellige grene.


Sammenlign ovenstående output med kommandoutputet 'git log –graph', der tydeligt viser, hvordan 'lineær-break' -forpligtelserne er blevet flettet.

Bonus: Opsummer git-logoutput: ‘git shortlog’

Det 'git shortlog'Kommando kategoriserer forpligtelsesloggen forfattervis og udskriver en oversigtsoversigt, der angiver de forpligtelser, som hver forfatter har foretaget.
Kommando: git log-underskud

Kommando : git log shortlog -s
-s står for –summary, undertryk begivenhedsbeskrivelse og udskriv bare antallet af forpligtelser fra hver forfatter, sådan:

Desuden kan du også formatere output ved hjælp af de samme pladsholdere som diskuteret under '--pretty = format' mulighed
Prøv kommandoen: git shortlog --format = '% h | % s '

Derfor skal du være enig i, at denne output giver mere mening, da den viser id og id for hver forfatter sammen med det samlede antal forpligtelser.

Bemærk : Det er interessant at bemærke, at du meget let kan finde den gren, der forpligtede sig til. Det er værd at tage denne diskussion op i kommende artikler i dybden.

Så med det kommer vi til en ende på detteGit log-formathistorikblog, jeg håber, du fandt det informativt.

I dette indlæg lærte vi nogle formateringsteknikker, der udskriver projektoplysningerne på en mere tilpasset og brugervenlig måde. Du skal nu vide, hvordan du effektivt bruger parametrene til kommandoen 'git log' til at trække de oplysninger, du har brug for, om kildekoden fra din forpligtede historie. Så med det kommer vi til slutningen af ​​denne artikel, jeg håber, du fandt den informativ.

Hvis du er nysgerrig efter at lære mere, kan du tjekke dette af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edureka DevOps-certificeringskursus hjælper eleverne med at forstå, hvad der er DevOps og få ekspertise i forskellige DevOps-processer og -værktøjer såsom Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack og GIT til automatisering af flere trin i SDLC.

Har du et spørgsmål til os? Nævn det i kommentarfeltet i denne artikel om 'Git log-formathistorik', og vi vender tilbage til dig.