Hur man inspekterar ett projekts historia med Git Log

Hur man inspekterar ett projekts historia med Git Log

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:

  1. Visa åtaganden som är i huvudsak, men inte gren: | _+_ |
  2. Visa åtaganden som är i filial, men inte huvud: | _+_ |
  3. 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

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 usb
Dela 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
Om författaren Bobby Jack(58 artiklar publicerade)

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 Jack

Prenumerera 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