Hoe gebruik je Git Log om de vastleggeschiedenis op te maken?



Git is een tool die helpt bij het organiseren en beheren van de broncode van uw applicaties. Leer alles over het git log format history-commando en hoe je het kunt gebruiken.

In dit artikel zullen we enkele geavanceerde opties bespreken om de vastleggingslogboeken op te maken en af ​​te drukken om de informatie die je nodig hebt uit de geschiedenis van je projectjournaal te halen. Aangezien we het al weten, houdt een dagboek bij van de wijzigingen die zijn vastgelegd in de projectgeschiedenis, we zullen nu meer manieren onderzoeken waarop het ‘git log’ -commando nuttig is.

Ten eerste schakel ik over naar / bekijk de 'feature1' -tak voor een gemakkelijke en kortere geschiedenis.
Gebruik de commando's -





$cd myProj–Schakel naar het git-project

$git checkout-functie 1- spring naar de ‘feature1’ branch



1. Commit Formattering

1.1 Pretty-print de outputinhoud in een bepaald formaat

Syntaxis: git log --pretty [=]

waar, kan een van zijn oneline, kort, medium, vol, voller, e-mail, rauw, en formaat:
Wanneer = deel is weggelaten, het is standaard medium.

1.1.1 –pretty=oneline

Mooie print commit log in een ‘enkele regel’
Opdracht: git log --pretty = oneline
Formatteert de uitvoer in volgorde:




Commit - Geschiedenis van de log-indeling van Git - Edureka

1.1.2 - vrij = kort

Formatteer commit uitvoer ‘short’ in het formaat:
commit (refname)
Schrijver:



1.1.3 - vrij = gemiddeld

Opdracht: git log --pretty = medium
Print commit output in het ‘medium’ formaat:
plegen
Schrijver :
Datum:


1.1.4 - vrij = vol

Opdracht: git log --pretty = vol
Uitvoer is in het formaat:
commit (refname)
Schrijver:
Vastleggen:


1.1.5 - best = voller

Opdracht: git log --pretty = voller
commit (refname)
Schrijver:
AuthorDate :
Vastleggen:
CommitDate:


1.1.6 –pretty = e-mail

Opdracht: git log --pretty = e-mail
Logboekuitvoer afdrukken in e-mailstijl:
Van
Van:
Datum:
Onderwerpen: [PATCH]


1.1.7 - vrij = rauw

Opdracht: git log --pretty = raw
Het ruwe log output formaat toont de gehele commit precies zoals opgeslagen in het commit object.
plegen
boom
ouder
schrijver
plegen

1.1.8 -format:: Aangepaste opmaak

Het formaat stelt je in staat om te specificeren welke informatie van het vastlegobject je wilt afdrukken in het vastleguitvoerlogboek
Laten we eens kijken naar de verschillende tijdelijke aanduidingen die deze optie biedt, net als een ‘C printf’ -functie met behulp van codefragmenten:

Opdracht: git log --pretty = formaat: '% h% ad | % s% d [% an] '--date = kort
Uitvoerformaat:
| [auteur naam]

% h = Verkorte hash-id / sha1commit-id's
% H = lange sha-1 ids
%naar = datum van auteur
% s = onderwerptitelregel vastleggen
% d = referentie pointer (branch, tag) namen
%een = naam van de auteur
-datum = kort: print alleen de datum en niet de tijd in een leesbaar formaat

Nu, hoe zit het met het mensvriendelijker maken van deze output door middel van kleuren.
Opdracht:
git log --pretty = format: '% C (geel)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = kort


Enkele andere tijdelijke aanduidingen die in het bovenstaande codefragment worden gebruikt, zijn:
% C (geel) : Verander de volgende string in geel
% Creset : Zet de volgende string terug naar de standaard (witte) kleur
% Cgroen : verander de volgende string in groen
%Ik vermoed: Verander de volgende string in rood
% Cblauw: Maak de naam van de auteur blauw van kleur

U hoeft niet elke keer de hele opdracht te onthouden en te schrijven, gebruik gewoon een korte naam als git alias zoals hieronder weergegeven:
Opdracht:
git config --global alias.c-hist 'log --pretty = format:'% C (geel)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short'

'C-hist' vertegenwoordigt c benut hist ory
Dus, zoals je zou hebben gezien, stel ik mijn globale git configuratie bestand met de waarden.

sql-gegevenstype voor datum

Nu, om de geschiedenis van de huidige branch te controleren, hoef je alleen maar het commando uit te voeren, zoals zo:
Opdracht: ga c-hist

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

Opdracht: git log --abbrev-commit
De volledige hexadecimale objectnaam van 40 bytes wordt afgekort tot standaard 7 bytes.


Laten we het verenigen met de ‘--oneline‘Optie voor een handig overzicht, zoals:
Opdracht: git log --abbrev-commit --oneline

Wat nog spannender is, is dat je ook de byte-lengte van sha-1 ids kunt specificeren met de ‘–abbrev =’ optie, zoals hieronder getoond:
Opdracht: git log --abbrev-commit --abbrev = 5 --oneline



Het is duidelijk dat de gemarkeerde sha-1-id's worden teruggebracht tot een grootte van 5 bytes.

1.3 -no-abbrev-commit

Laat de volledige hexadecimale objectnaam van 40 bytes zien.
Dit ontkent –Abbrev-commit en de opties die impliceren
het zoals '–oneline'.
Opdracht: git log --pretty = oneline --no-abbrev-commit



1.4 - relatieve datum

Opdracht: git log --relative-date

Houd er rekening mee dat deze gemarkeerde tijd onderhevig is aan verandering met betrekking tot de tijd waarop u de opdracht op uw systeem uitvoert.

1.5 –datum =

U kunt de datum van vastleglogboeken ook opmaken in een van de volgende indelingsopties:

1.5.1 –datum = relatief

Opdracht :git log --date = relatief
Dit is synoniem met het bovenstaande commando 'git log --relative-date”En drukt dezelfde commits af.

1.5.2 –datum = lokaal

Opdracht : git log --date = local

1.5.3 –datum = iso

Opdracht: git log --date = iso

1.5.4 –datum = iso-strikt

Opdracht: git log --date = iso-strict

1.5.5 –datum = rfc

Opdracht: git log --date = rfc

1.5.6 –datum = kort

Opdracht: git log --date = kort

1.5.7 –date = raw (toont de datum in seconden)

Opdracht: git log --date = raw
Druk de tijd af in seconden sinds het unix epoc tijd (01 jan 1970) gevolgd door de tijdzone.

1.5.8 –datum = mens

Opdracht: git log --date = menselijk

1.5.9 –datum = unix

Toont de datum als unix epoc (UTC) tijd.
Opdracht: git log --date = unix

1.6 –ouders

Druk ook de ouders van elke commit af in het formaat:
Opdracht: git log --parents
Oneliner-uitvoeropdracht: git log --parents --oneline

Aandachtspunten:
C366419 is een merge commit, dus heeft respectievelijk 2 ouders: feeb30c en 4920adc
hetzelfde

1d67b50 is een merge commit, die het resultaat is van het samenvoegen f2ff2e4 en abb694b
078f9f5 is een merge commit gemaakt door samen te voegen 9a2412e en ab3a5e5
Terwijl, 86792c6 is de eerste commit, dus geen ouder.

1.7 - kinderen

Print ook de kinderen in het formulier
Opdracht: git log --children --oneline

Opmerking :
006b9ce is de laatste commit, dus er zijn nog geen onderliggende commit-objecten. De volgende wijziging die je aanbrengt en commit in deze branch zal het child-commit object zijn van deze laatste sha-1 id.

1.8 –grafiek

Teken een op tekst gebaseerde grafische weergave van de vastleggeschiedenis vóór de sha-1 ids.
Opdracht: git log --graph
Verbeterde oneliner-output: git log --graph --oneline


Dit laat je begrijpen wanneer, hoe en waarom en andere branches werden samengevoegd in de momenteel uitgecheckte branch.

1.9 –show-linear-break

Opdracht: git log --show-linear-break
Dit is een handig commando om een ​​barrière aan te geven tussen 2 opeenvolgende commits die niet tot een lineaire branch behoren, met andere woorden de commits die van verschillende branches kwamen.


Vergelijk de bovenstaande uitvoer met de uitvoer van het ‘git log –graph’ commando dat duidelijk laat zien hoe de 'linear-break' commits zijn samengevoegd.

Bonus: vat git log output samen: ‘git shortlog’

De 'git shortlog‘Commando categoriseert de vastleggingslogboeken qua auteur en drukt een overzichtsamenvatting af, met de door elke auteur gemaakte commits.
Opdracht: git log shortlog

Opdracht : git log shortlog -s
-s staat voor –summary, onderdruk de commit-beschrijving en druk gewoon het aantal commits van elke auteur af, zoals zo:

Bovendien kunt u de uitvoer ook opmaken met dezelfde tijdelijke aanduidingen als besproken onder ‘--pretty = formaat' keuze
Probeer het commando: git shortlog --format = '% h | % s '

Daarom zul je het ermee eens zijn dat deze uitvoer logischer is omdat het de id en de voor elke auteur laat zien, samen met het totale aantal commits.

Opmerking : Het is interessant om op te merken dat je heel gemakkelijk de branch kunt vinden die een bepaalde commit heeft gedaan. Het is de moeite waard om deze discussie in de komende artikelen diepgaand op te nemen.

Daarmee komen we hier dus aan een eindeGeschiedenis van de log-indeling van Gitblog, ik hoop dat je het informatief vond.

In dit bericht hebben we enkele opmaaktechnieken geleerd die de projectinformatie op een meer aangepaste en gebruiksvriendelijke manier afdrukken. Je zou nu moeten weten hoe je de parameters van het ‘git log’ commando effectief kunt gebruiken om alle informatie die je nodig hebt over de broncode uit je vastgelegde geschiedenis te halen. Dus daarmee komen we aan het einde van dit artikel, ik hoop dat je het informatief vond.

Als je nieuwsgierig bent naar meer, kun je dit bekijken door Edureka, een vertrouwd online leerbedrijf met een netwerk van meer dan 250.000 tevreden leerlingen verspreid over de hele wereld. De Edureka DevOps Certification Training-cursus helpt leerlingen te begrijpen wat DevOps is en expertise op te doen in verschillende DevOps-processen en -tools zoals Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack en GIT voor het automatiseren van meerdere stappen in SDLC.

Heeft u een vraag voor ons? Vermeld het alstublieft in de commentarensectie van dit artikel over 'Git log format history' en we nemen zo snel mogelijk contact met u op.