Учитывая имя локальной / удаленной ветки, как я могу получить хэш фиксации, на которую указывает эта ветка?
88
Команда git rev-parse
- ваш друг, например:
$ git rev-parse development
17f2303133734f4b9a9aacfe52209e04ec11aff4
... или для ветки удаленного отслеживания:
$ git rev-parse origin/master
da1ec1472c108f52d4256049fe1f674af69e785d
Эта команда обычно очень полезна, поскольку она может анализировать любой из способов указания имен веток в git
, например:
git rev-parse master~3
git rev-parse HEAD@{2.days.ago}
... так далее.
foo
, вы можете сделать:git log --pretty=format:'%H'
def BranchHash = sh "git rev-parse ${BRANCH-NAME}
Я получаю:fatal: ambiguous argument 'HEAD': unknown revision or path not in the working tree.
. что не так?Хеши хранятся
.git/refs/
, например,.git/refs/heads/master
Но используйте программно,
git rev-parse
как предложил Марк Лонгэр, так как это безопаснее.источник
Не забывайте, что начиная с Git 2.19 (второй квартал 2018 г.), Git готовит переход от хэшей SHA1 к SHA2: см. « Почему Git не использует более современный SHA? »
С Git 2.25 (первый квартал 2020 г.),
git rev-parse
развитие и отражение этого возможного нового хэша.См совершать fa26d5e , совершать cf02be8 , совершают 38ee26b , совершают 37ab8eb , совершают 0370b35 , совершают 0253e12 , совершают 45e2ef2 , совершают 79b0edc , совершают 840624f , совершают 32a6707 , совершают 440bf91 , совершают 0b408ca , совершают 2eabd38 (28 окт 2019), а также совершать 1bcef51 , совершают ecde49b (5 октября 2019 г.) Брайан М. Карлсон (
bk2204
) .(Объединено Junio C Hamano -
gitster
- в фиксации 28014c1, 10 ноя 2019)git rev-parse
Документация теперь включает в себя:С Git 2.29 (Q4 2020) вы можете убедиться, какой формат вы должны использовать для чтения хеш-фиксации ветки (или любого другого объекта).
См совершать e023ff0 , совершать 4feb562 , совершает 8a06d56 , совершает c49fe07 , совершает 02a32db , совершают ceaa4b3 , совершает eff45da , совершает b5b46d7 , совершает c5aecfc , совершает e74b606 , совершает 439d3a1 , совершает 6c2adf8 , совершает de5737c , совершает e0a646e , совершает 6ff6a67 , совершает 831279d , совершить b6e5005 , совершить 287bb3a , зафиксировать 22f1824 , зафиксировать db00af9 ,совершают 7187eb1 , совершают 98de0b2 , совершает a5587b8 , совершает 66b6d43 , совершает 2197f87 , совершает c0b65ea , совершает d62607d , совершает d482c23 , совершают 866be6e , совершают 4bacb6d , совершает 252a4ee , совершает 368f3cb , совершает abe3db1 , совершает 08fbc5d , совершает 11b6961 , совершает 9e3bd8a , совершает d827bce , совершить 094a685 (29 июля 2020 г.) Брайан М. Карлсон (
bk2204
) .Увидетьcommit 800e6a7(29 июля 2020 г.) Йоханнес Шинделин (
dscho
) .(Объединено Junio C Hamano -
gitster
- в коммите e0ad957 , 11 августа 2020 г.)git config
теперь включает в свою справочную страницу :Для ясности: в Git 2.29 (Q4 2020) недавнее добавление поддержки SHA-256 отмечено в документации как экспериментальное .
См. Коммит ff233d8 (16 августа 2020 г.) Мартина Агрена (
none
) .(Объединено Junio C Hamano -
gitster
- в коммите d1ff741 , 24 августа 2020 г.)git
теперь включает в свою справочную страницу :object-format-disclaimer
теперь включает в свою справочную страницу :Тот же Git 2.29 (Q4 2020) гарантирует, что "
git clone
" ( man ) будет работать при клонировании из репозитория SHA-1, в то время какGIT_DEFAULT_HASH
уже настроено использование SHA-256.До версии 2.29 это приводило к созданию непригодного для использования репозитория, который наполовину претендовал на роль репозитория SHA-256 с объектами SHA-1 и ссылками.
Это было исправлено.
См. Commit 47ac970 (20 сентября 2020 г.) Брайан М. Карлсон (
bk2204
) .(Объединено Junio C Hamano -
gitster
- в фиксации b28919c , 29 сентября 2020 г.)источник