Co robi następujące polecenie?:

git rev-parse --short HEAD

Odpowiedź powinna obejmować:

  1. Krótki i do odpowiedzi, która wyjaśnia, co to polecenie robi jako całość
  2. Wyjaśnienie analizy rev
  3. Wyjaśnienie --Short.
  4. Wyjaśnienie głowy
git
-1
Alon 3 sierpień 2020, 08:20

1 odpowiedź

Najlepsza odpowiedź

git rev-parse --short jest zarówno sposób na:

Zastosowane do głowy, wraca do krótkiej wersji SHA1 aktualnie sprawdzonego zatwierdzenia (który niekoniecznie jest oddział, )

Możesz zobaczyć go po raz pierwszy w samym bazie kodu GIT / GIT w Zobowiązuje E3AE4A8613151C1EEEE3EEF6, sierpnia . 2009, GIT V1.6.5-RC0.

Substring Notation Expansion jest buzizmem, którego nie mamy do tej pory przyjęty.
. Zamiast tego użyj "Git Rev-Parse --Short", ponieważ obsługuje to również przypadek, w którym unikalne skrót jest dłuższy niż 7 znaków.

Więc zamiast:

${sub1sha1:0:7}

Posługiwać się:

sub1sha1_short=$(cd clone3/sub1 && git rev-parse --short HEAD)
$sub1sha1_short

Znajdujesz go tak w Zobowiązuj E8F21CA, czerwiec 2013, Git v1.8.4-RC0, W przypadku monitu bash:

Bash Monit: Drukuj Unikalna wolnostojąca nazwa obiektu skróconej głowicy

Opisując jednorodzinną głowę zgodnie z zmienną środowiskową $GIT_PS1_DESCRIBE nie powiedzie się, __git_ps1() uruchamia "cut -c1-7 .git/HEAD", aby pokazać 7 heksdigitów skróconych nazwę obiektu HEXDIGE w monicie.
Oczywiście, ani nie szanuje core.abbrev ani nie wytwarza unikalnej nazwy obiektu.

Napraw to za pomocą "git rev-parse --short HEAD" zamiast tego regulować odpowiedni test, aby użyć niestandardowej liczby heksdigitów.

Ponieważ --short oblicza minimalną długość, aby Sha była niejednoznaczna, powinna być ostatnią opcją używaną przez GIT Rev-Parse.

Zobacz Zobowiązuj E3E0B93, a także czerwiec 2013, Git v1.8.4-RC0

Monit Bash: Połącz "Git Rev-Parse" dla jednorodzinnej głowy

Opisując jednorodzinną głowę zgodnie z zmienną środowiskową {X0}} nie powiedzie się, __git_ps1() teraz uruchamia podstawienie poleceń "{X2}}" Nakłada to napowietrzne widelca () ing subshell i widelec () + exec () procesu git.

Unikaj tego napowietrznego, łącząc tę substytucję polecenia za pomocą "Główny" git rev-parse "Wykonanie, aby uzyskać ścieżkę do katalogu {X1}} & AMP; co.
. Oznacza to, że poszukujemy skróconej nazwy obiektu zobowiązań, nawet jeśli nie jest to konieczne, ponieważ jesteśmy na gałęzi, albo wolnostojąca głowica może być opisana.
Nie ma jednak znaczenia, ponieważ raz "git rev-parse" jest włączony, a uruchomienie, aby spełnić wszystkie inne zapytania, dodatkowym obciążeniem poszukiwanym skróconej nazwy obiektu Zobowiązania nie jest wymierne, ponieważ zginęło w hałasie.

Istnieje jednak zastrzeżenie, gdy jesteśmy na nienarodzonym oddziale, ponieważ w tej sprawie głowa nie wskazuje na ważne zatwierdzenie, stąd zapytanie do skróconej nazwy obiektu Zobowiązania nie powiedzie się.
Dlatego "--short HEAD" musi być ostatnimi opcjami do "git rev-parse", aby uzyskać wszystkie inne niezbędne informacje dla monitu nawet na nienarodzonej gałęzi.
Ponadto w takim przypadku, w tym przypadku tylko "git rev-parse" nie wysyła ostatniej linii zawierającej nazwę obiektu skróconego, więc musimy dbać o tylko przeanalizowanie go, jeśli "{{x3 }} "Exited bez błędu.

3
Philippe 3 sierpień 2020, 08:56