Biorąc pod uwagę nazwę gałęzi lokalnej / zdalnej, jak mogę uzyskać skrót zatwierdzenia, na który wskazuje ta gałąź?
88
Komenda git rev-parse
jest Twoim przyjacielem, np:
$ git rev-parse development
17f2303133734f4b9a9aacfe52209e04ec11aff4
... lub dla oddziału zdalnego śledzenia:
$ git rev-parse origin/master
da1ec1472c108f52d4256049fe1f674af69e785d
To polecenie jest ogólnie bardzo przydatne, ponieważ może przeanalizować dowolny ze sposobów określania nazw gałęzi git
, na przykład:
git rev-parse master~3
git rev-parse HEAD@{2.days.ago}
... itd.
foo
, możesz zrobić:git log --pretty=format:'%H'
def BranchHash = sh "git rev-parse ${BRANCH-NAME}
Dostaję:fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
. co jest nie tak?Skróty są przechowywane pod
.git/refs/
np.git/refs/heads/master
Ale używaj programowo
git rev-parse
zgodnie z sugestią Marka Longaira, ponieważ jest to bezpieczniejsze.źródło
Nie zapominaj, że od Git 2.19 (Q2 2018), Git przygotowuje przejście z SHA1 do SHA2: zobacz „ Dlaczego Git nie używa nowocześniejszego SHA? "
Z Git 2.25 (Q1 2020),
git rev-parse
ewoluuje i odzwierciedla ten możliwy nowy hash.Zobacz popełnić fa26d5e , popełnić cf02be8 , popełnić 38ee26b , popełnić 37ab8eb , popełnić 0370b35 , popełnić 0253e12 , popełnić 45e2ef2 , popełnić 79b0edc , popełnić 840624f , popełnić 32a6707 , popełnić 440bf91 , popełnić 0b408ca , popełnić 2eabd38 (28 paź 2019) i popełnić 1bcef51 , zobowiązać ecde49b (5 października 2019) autor: brian m. carlson (
bk2204
) .(Scalony przez Junio C Hamano -
gitster
- w zatwierdzeniu 28014c1, 10 listopada 2019)git rev-parse
Dokumentacja obejmuje obecnie:Dzięki Git 2.29 (Q4 2020) możesz upewnić się, jakiego formatu musisz użyć do odczytania haszującego zatwierdzenia gałęzi (lub dowolnego innego obiektu).
Zobacz popełnić e023ff0 , popełnić 4feb562 , popełnić 8a06d56 , popełnić c49fe07 , popełnić 02a32db , popełnić ceaa4b3 , popełnić eff45da , popełnić b5b46d7 , popełnić c5aecfc , popełnić e74b606 , popełnić 439d3a1 , popełnić 6c2adf8 , popełnić de5737c , popełnić e0a646e , popełnić 6ff6a67 , popełnić 831279d , zobowiązać b6e5005 , zatwierdzenie 287bb3a , zatwierdzenie 22f1824 , zatwierdzenie db00af9 ,zatwierdzić 7187eb1 , zatwierdzić 98de0b2 , zatwierdzić a5587b8 , zatwierdzić 66b6d43 , zatwierdzić 2197f87 , zatwierdzić c0b65ea , zatwierdzić d62607d , zatwierdzić d482c23 , zatwierdzić 866be6e , zatwierdzić 4bacb6d , zatwierdzić 252a4ee , zatwierdzić 368f3cb , zatwierdzić c0b65ea , zatwierdzić d62607d , zatwierdzić d482c23 , zatwierdzić 866be6e , zatwierdzić 4bacb6d , zatwierdzić 252a4ee , zatwierdzić 368f3cb , zatwierdzić abe3dbc1 , zatwierdzić , commit 094a685 (29 lipca 2020) autor: brian
bk2204
M. carlson ( ) .Widziećpopełnij 800e6a7 (29 lipca 2020) przez Johannes Schindelin (
dscho
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu e0ad957 , 11 sierpnia 2020 r.)git config
teraz zawiera na swojej stronie podręcznika :Dla jasności, w Git 2.29 (Q4 2020), niedawny dodatek wsparcia SHA-256 jest oznaczony w dokumentacji jako eksperymentalny .
Zobacz commit ff233d8 (16 sierpnia 2020) autorstwa Martina Ågren (
none
) .(Scalone przez Junio C Hamano -
gitster
- w zatwierdzeniu d1ff741 , 24 sierpnia 2020 r.)git
teraz zawiera na swojej stronie podręcznika :object-format-disclaimer
teraz zawiera na swojej stronie podręcznika :Ten sam Git 2.29 (Q4 2020) zapewnia, że "
git clone
" ( man ) będzie działał, gdy jeden klonuje z repozytorium SHA-1, podczas gdyGIT_DEFAULT_HASH
jest już ustawiony na używanie SHA-256.Przed 2.29 skutkowało to bezużytecznym repozytorium, które częściowo twierdziło, że jest repozytorium SHA-256 z obiektami i referencjami SHA-1.
Zostało to poprawione.
Patrz popełnienia 47ac970 (20 wrzesień 2020) przez brian m. carlson (
bk2204
) .(Scalone przez Junio C Hamano -
gitster
- w zobowiązaniu b28919c , 29 września 2020 r.)źródło