Git-show

Czym jest polecenie git-show?

Polecenie git-show jest narzędziem wiersza polecenia przeznaczonym do wyświetlania rozszerzonych szczegółów obiektów Git, takich jak obiekty blob, drzewa, tagi i commity. Działanie polecenia git-show jest specyficzne dla każdego typu obiektu.

W przypadku tagów są wyświetlane komunikat tagu oraz inne obiekty uwzględnione w tagu. W przypadku drzew są wyświetlane nazwy oraz zawartość obiektów w drzewie. W przypadku obiektów blob jest wyświetlana ich bezpośrednia zawartość. Z kolei w przypadku commitów są wyświetlane komunikat dziennika commita oraz wersja różnicowa zmian wprowadzonych w commicie.

Wszystkie obiekty Git są dostępne za pomocą referencji. Domyślnie polecenie git-show działa w oparciu o referencję HEAD. Referencja HEAD zawsze wskazuje na ostatni commit w bieżącej gałęzi. W związku z tym za pomocą polecenia git-show można wyświetlić komunikat dziennika oraz wersję różnicową najnowszego commita.

Opcje polecenia git-show

<object>…

Przekazanie odniesienia do obiektu lub listy obiektów pozwala przeanalizować te konkretne obiekty. Jeśli nie zostaną przekazane żadne konkretne obiekty, polecenie git-show domyślnie będzie odnosić się do wskaźnika HEAD.

--pretty[=<format>]

Opcja pretty przyjmuje jedną z wartości dodatkowych formatu: oneline, short, medium, full, fuller, email, raw i format:<string>. Jeśli zostanie pominięta, domyślnie będzie stosowana opcja medium. Każda opcja formatu jest odmiennym szablonem decydującym o sposobie formatowania wyniku polecenia show w Git. Opcja <code>oneline</code> może być bardzo przydatna podczas wyświetlania listy commitów.

--abbrev-commit

Ta opcja skraca długość wyjściowych identyfikatorów commitów. Identyfikatory commitów składają się z 40 znaków i czasami trudno je wyświetlić na wąskich ekranach terminali. Ta opcja w połączeniu z --pretty=oneline pozwala uzyskać bardzo zwięzły wynik polecenia git log.

--no-abbrev-commit

Zawsze pokazuje pełny identyfikator commita złożony z 40 znaków. Powoduje zignorowanie opcji --abbrev-commit oraz wszelkich innych opcji mających na celu skrócenie identyfikatorów commitów, takich jak --oneline format.

--oneline

To skrót do korzystania z rozszerzonego polecenia --pretty=oneline --abbrev-commit.

--encoding[=<encoding>]

Domyślne kodowanie znaków w komunikatach dziennika w Git to UTF-8. Za pomocą tej opcji można zmienić sposób kodowania znaków na inny. Jest to przydatne w przypadku korzystania z Git w środowisku, w którym obowiązuje inne kodowanie znaków, przykładowo w terminalu z ustawieniami języka azjatyckiego.

--expand-tabs=<n>--expand-tabs--no-expand-tabs

Te opcje zastępują znaki tabulacji w wyniku komunikatu dziennika spacjami. Za pomocą wartości n można skonfigurować liczbę spacji wstawianych zamiast znaku tabulacji. Jeśli wartość n nie zostanie jawnie zdefiniowana, znaki tabulacji będą zastępowane 8 spacjami. --no-expand-tabs jest odpowiednikiem n=0

--notes=<ref>--no-notes

Git ma wbudowany system notatek, który umożliwia dołączanie dowolnych metadanych typu „notatka” do obiektów. Te dane można ukryć lub filtrować podczas korzystania z polecenia git-show.

--show-signature

Ta opcja zweryfikuje, czy commit został podpisany podpisem szyfrowanym przez przekazanie go do podpolecenia gpg.

Formaty pretty w poleceniu git-show


Opcja --pretty omówiona powyżej przyjmuje jedną z kilku dodatkowych opcji określających format danych wyjściowych uzyskiwanych za pomocą polecenia git-show. Poniżej wymieniono te opcje dodatkowe wraz z przykładowym szablonem:

Oneline

<sha1> <title line>

W formacie oneline system podejmuje próbę skompresowania jak największej ilości informacji w jednym wierszu.

short

commit <sha1>
Author: <author>
<title line>

Średni

commit <sha1>
Author: <author>
Date: <author date>
<title line>
<full commit message>

full

commit <sha1>
 Author: <author>
 Commit: <committer>
<title line>
<full commit message>

fuller

commit <sha1>
Author: <author>
AuthorDate: <author date>
Commit: <committer>
CommitDate: <committer date>
<title line>
<full commit message>

Adres e-mail

From <sha1> <date>
From: <author>
Date: <author date>
Subject: [PATCH] <title line>
<full commit message>

raw

Format raw ignoruje inne opcje formatowania przekazane do polecenia git-show i wyświetla commit w dokładnie takiej postaci, w jakiej został zapisany w obiekcie. Format raw będzie ignorował opcje --abrev i --no-abbrev oraz zawsze wyświetlał commity nadrzędne.

Format

Opcja format umożliwia określenie niestandardowego formatu danych wyjściowych. Działa ona podobnie, jak polecenie printf w języku C. Opcja --pretty=format przyjmuje dodatkową wartość ciągu szablonu. Szablon ma dostęp do zmiennych symboli zastępczych, które zostaną wypełnione danymi z obiektu commita. Te symbole zastępcze są wymienione poniżej:

  • %H: Hash commita

  • %h: Skrócony hash commita

  • %T: Hash drzewa

  • %t: Skrócony hash drzewa

  • %P: Hashe elementów nadrzędnych

  • %p: Skrócone hashe elementów nadrzędnych

  • %an: Nazwa autora

  • %aN: Nazwa autora

  • %ae: Adres e-mail autora

  • %aE: Adres e-mail autora

  • %ad: Data autora (format akceptuje opcję --date=)

  • %aD: Data autora, styl RFC2822

  • %ar: Data autora, względna

  • %at: Data autora, znacznik czasu UNIX

  • %ai: Data autora, format ISO 8601

  • %cn: Nazwa twórcy commita

  • %cN: Nazwa twórcy commita

  • %ce: Adres e-mail twórcy commita

  • %cE: Adres e-mail twórcy commita

  • %cd: Data twórcy commita

  • %cD: Data twórcy commita, styl RFC2822

  • %cr: Data twórcy commita, względna

  • %ct: Data twórcy commita, znacznik czasu UNIX

  • %ci: Data twórcy commita, format ISO 8601

  • %d: Nazwy referencji, jak w przypadku opcji --decorate polecenia git-log(1)

  • %e: Kodowanie

  • %s: Temat

  • %f: Oczyszczony wiersz tematu, odpowiedni dla nazwy pliku

  • %b: Treść

  • %N: notatki do commita

  • %gD: Selektor dziennika reflog, np. refs/stash@{1}

  • %gd: Skrócony selektor dziennika reflog, np. stash@{1}

  • %gs: Temat dziennika reflog

  • %Cred: Zmiana koloru na czerwony

  • %Cgreen: Zmiana koloru na zielony

  • %Cblue: Zmiana koloru na niebieski

  • %Creset: Reset koloru

  • %C(...): Specyfikacja koloru zgodna z opisem w opcji konfiguracji color.branch.*

  • %m: Znacznik lewy, prawy lub granicy

  • %n: Nowy wiersz

  • %%: Znak %

  • %x00: Drukowanie bajtu z kodu szesnastkowego

  • %w([[,[,]]]): Przełączenie zawijania wiersza, jak w przypadku opcji -w w poleceniu git-shortlog

Przykłady polecenia git-show

git show --pretty="" --name-only bd61ad98

To polecenie spowoduje wyświetlenie listy wszystkich plików w commicie, na których wykonano jakąś operację.

git show REVISION:path/to/file

To polecenie spowoduje wyświetlenie konkretnej wersji pliku. Fragment REVISION zastąp hashem SHA Git.

git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783

To polecenie spowoduje wyświetlenie tagu v2.0.0 oraz commita o identyfikatorze 6ef002d74cbbc099e1063728cab14ef1fc49c783.

git show commitA...commitD

To polecenie spowoduje wyświetlenie wszystkich commitów z zakresu od commitA do commitD.

Podsumowanie

Polecenie git-show jest bardzo wszechstronnym narzędziem do badania obiektów w repozytorium Git. Można go używać do wyszukania konkretnych plików w konkretnych wersjach. Przeanalizowanie zakresu commitów za pomocą polecenia git-show spowoduje wyświetlenie wszystkich pojedynczych commitów mieszczących się w zakresie. Polecenie git-show bywa pomocnym narzędziem do tworzenia uwag do poprawek oraz śledzenia zmian w repozytorium.

Polecane dla Ciebie

Blog Bitbucket

Ścieżka szkoleniowa DevOps

Dowiedz się więcej o Git

Znajdź więcej przewodników i zasobów Git w tym centrum.