En av de mest grundläggande tjänsterna från Git är projektets historia. Eftersom Git håller reda på alla ändringar av filer som görs i ett förråd kan det erbjuda mycket kraftfulla loggfunktioner. Du kan söka efter ett projekts historia på många olika sätt och du kan extrahera och visa olika data med ett flexibelt kommando.
De git -logg kommandot är enormt, det största av alla vanliga Git -kommandon. Handboken är över 2500 rader lång. Lyckligtvis, git -logg ger mycket av sitt mest användbara beteende från bara några viktiga alternativ.
Grundläggande loggning med standardbeteendet
Som standard, git -logg visar en omvänd-kronologisk lista över åtaganden. Varje åtagande innehåller dess hash, författare, datum och engagemangsmeddelande:
Kommandot använder en personsökare (t.ex. mindre, mer) för att visa hela utmatningen så att du enkelt kan navigera i resultaten. Du kan konfigurera Git för att använda ett program du väljer, till exempel den mest personsökare.
Här är några git -loggutdata från förvaret för git -källkoden sig:
commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano
Resultatet börjar med commit hash ( 670 ...) följt av en lista över grenar som för närvarande pekar på det åtagandet ( HEAD -> mästare , etc.)
titta på filmer online gratis utan registrering
Nästa rad beskriver författaren till detta åtagande, med namn och e -postadress.
Hela datum och tid för åtagandet följer på nästa rad.
Slutligen visas hela innehållet i kommittémeddelandet. Du kan styra det mesta av allt annat som git-loggen erbjuder med kommandoradsalternativ. Det finns två huvudtyper av alternativ:
- Formatering, som definierar hur Git visar varje åtagande.
- Filtrering, som definierar vilket som begår git -logg inkluderar.
Förutom kommandoradsalternativ accepterar git-logg argument som anger filer, åtaganden, grenar eller andra typer av referenser. Dessa tillämpar ytterligare filtrering.
Formatera Git Log Output
En av de enklaste justeringarna är --en linje alternativ som ger en mycket kort utmatning:
git log --oneline
Varje rad i loggen innehåller nu bara en förkortad commit hash och ämnet för commit meddelandet. Detta är ett utmärkt sätt att få en överblick över de senaste åtagandena för projektet:
Tyvärr, utan något annat sammanhang, är denna information inte alltid så användbar. Det kan ge dig en vag känsla för projektet, men det saknar datum och annan användbar information om författare och filer.
Visa en filialgraf
De --Graf alternativet låter dig visualisera relationer mellan grenar. Det är väldigt grundläggande men kan hjälpa till att lösa en komplicerad historia.
git log --oneline --graph
Relaterad: Hur man skapar en ny filial i Git
Anpassad Pretty Output
Du kan uppnå mer komplicerad formatering genom att specificera den i detalj med --Söt alternativ. Syntaxen går från mycket enkel till mycket mer komplex, så konsultera en manual för fullständiga detaljer .
kan du tända min ficklampa
git log --pretty=short
Är i huvudsak samma som git -logg utan datum eller fullständigt meddelande:
git log --pretty=oneline
Är ekvivalent med git log -online .
git log --pretty=fuller
Innehåller mycket detaljer. Det skiljer till och med författare och bidragsgivare som i teorin kan vara olika människor:
Med formatera: variant, kan du tillhandahålla en sträng som innehåller vilket innehåll du vill, inklusive platshållare som ersätts av olika data. Här är några exempel på platshållare:
- %H begå hash
- %h förkortad commit hash
- %till författarens datum
- %Med författarens datum, släkting
- %s begå meddelandeämne
- % b begå meddelandetext
- %p förkortade föräldrakontor
Du kan lägga till fasta tecken i utmatningen och färga den. Detta exempel visar också en variant på datumformat:
git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short
Observera att parenteser omger datumet. Oavsett vilken formatering du väljer, om du vill att utdata ska vara användbart i en pipeline eller för andra former av textbehandling, bör du överväga hur du avgränsar varje del av utdata.
Visar diff i loggen
En viktig detalj när man tittar på ett förvars historia är skillnaderna själva. De representerar det som faktiskt har ändrats i koden! Till att börja med kan du få en sammanfattning av ändringar vid varje åtagande med --kortstat :
git log --shortstat
Detta lägger till en rad som:
1 file changed, 48 insertions(+), 2 deletions(-)
Till botten av varje åtagande. Du ser ofta den här typen av sammanfattning - till exempel på sidor på GitHub - och det är ett användbart sätt att snabbt bedöma omfattningen av ett specifikt åtagande. För mer detaljerad information kan du inkludera full patch -utmatning (diffs) med -s flagga:
git log -p
Filtrering av Git Log Output
Oavsett vilken formatering du använder ser du fortfarande hela loggen över alla åtaganden i den aktuella grenen. Även om Git delar upp dem i sidor kan det fortfarande vara mycket utdata. Följande alternativ gör att du kan anpassa vilka åtaganden loggen innehåller.
Begränsning med belopp
Om du bara vill trimma resultaten för att visa de senaste åtagandena, använd -[siffra] syntax:
git log -2
Begränsa efter datum
För att begränsa uppsättningen av åtaganden till ett visst datumintervall, använd --eftersom ( --efter ) och --fram tills ( --innan ) alternativ. Dessa tar var och en ett datum i ISO 8601 -format. Du kan använda antingen --eftersom eller --fram tills på egen hand, eller båda tillsammans för att ange ett intervall. Alternativen --efter och --innan är synonymer.
git log --since='2021-01-01' --until='2021-05-01'
Begränsa med fil
Git -loggen kan fokusera på en specifik fil snarare än varje fil i ditt förråd. Detta är bra för att hjälpa dig att ta reda på hur en viss fil har förändrats över tid. Lägg bara till filnamnet i slutet av ditt git -kommando:
git log filename
Du ser bara de åtaganden som påverkade filnamn .
Skillnader mellan grenar
Du kan ha några unika krav när du ser loggen för en gren. Till exempel, istället för att se hela historiken, kanske du bara vill se vad som har ändrats i den specifika grenen. Git -loggen kan hjälpa till via ref1..ref2 syntax. Det finns tre lite olika tillvägagångssätt som du kan använda:
- Visa åtaganden som är i huvudsak, men inte gren: | _+_ |
- Visa åtaganden som är i filial, men inte huvud: | _+_ |
- Visa åtaganden som bara finns i gren eller huvud: | _+_ |
Skillnader mellan två taggar
Precis som du kan se historik mellan grenar med ref1..ref2 syntax, kan du också se historik mellan taggar på samma sätt. När allt kommer omkring är både taggar och grenar referensslag.
git log --oneline origin/branch..origin/main
Relaterade kommandon
Om du förbereder utgivningsanmärkningar för ett större projekt, git shortlog borde vara din första anlöpshamn. Den producerar en lista över författare med åtagande ämnen bredvid dem. Du kan skicka det ett referensintervall för att begränsa historiken på ett liknande sätt som git -logg:
git log --oneline origin/ main ..origin/ branch
De git show -kommando är ännu mer mångsidig än git -logg . Det kan fungera med taggar och andra typer av git -objekt bortom engagemangshistorik. Det delar många alternativ med git -logg , men du behöver det verkligen bara om du behöver gräva ner dig i detaljer på lägre nivå.
Granska det förflutna med Git -loggen
Git -loggen är ett komplicerat kommando, men du kan få mycket nytta av de mest grundläggande alternativen. Att bläddra i ett förvars historia är ett utmärkt sätt att förstå hur ofta förändringar sker och hur många människor gör dem. När du väl har en god förståelse för ett projekts historia kommer du att ha stor möjlighet att själv bidra till det.
hur man startar iso från usbDela med sig Dela med sig Tweet E-post Gå med i den sociala kodningstrenden och bidra till GitHub -förråd
Vill du träna dina kodningsmuskler och hjälpa projekt med öppen källkod? Så här bidrar du till GitHub.
Läs Nästa Relaterade ämnen- Programmering
- GitHub
- Kodningstips
Bobby är en teknikentusiast som arbetade som mjukvaruutvecklare i de flesta av två decennier. Han brinner för spel, jobbar som recensioner -redaktör på Switch Player Magazine och är fördjupad i alla aspekter av online -publicering och webbutveckling.
Mer från Bobby JackPrenumerera på vårt nyhetsbrev
Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!
Klicka här för att prenumerera