Чтобы избежать ненужных удаленных HEAD при проверке SHA с
> script, я хотел бы проверить ветку вместо этого, если эта SHA является текущим HEAD ветки.
В идеале я хочу передать git SHA, и он возвращает имя ветки, если SHA находится на текущем коннекторе ветвления, или ошибка, если нет.
git describe --all --exact-match <SHA>
почти то, что мне нужно, только то, что оно в первую очередь нацелено на теги, и поэтому, если ветка и тег указывают на мой SHA (что часто происходит в наших ветвях выпуска, например), только тег дано. Это не полезно, потому что проверка тега приводит к отсоединенной HEAD (даже если ветвь указывает на тот же SHA).
Заметьте, я не хочу делать git branch --contains
- мне не нужно знать, какие ветки содержат мое сообщение.
Если нет команды типа git describe
, просто для ветвей, я знаю, что могу перекрестно проверить SHA на SHA на ветку через git show-ref
. Однако это не самое элегантное решение.
Я мог бы также сделать git name-rev --name-only <hash>
, но мне пришлось бы вручную проверять вывод для символов ~
, который чувствует себя неуравновешенным, если там где-то git команда делает то же самое.