Я могу найти текущее имя ветки git, выполнив одно из следующих действий:
git branch | awk '/^\*/ { print $2 }'
git describe --contains --all HEAD
Но когда в отключенное состояние HEAD, например, на этапе пост-сборки в сборке maven Jenkins (или в Travis git fetch), эти команды не работают.
Мое текущее рабочее решение таково:
git show-ref | grep $(git log --pretty=%h -1) | sed 's|.*/\(.*\)|\1|' | sort -u | grep -v HEAD
Он отображает любое имя ветки, имеющее последнюю фиксацию на его кончике HEAD. Это работает нормально, но я думаю, что у кого-то с более сильным git-fu может быть более красивое решение?
Это должно быть более просто теперь с Мерзавцем 2.23 (3 квартал 2019), с тех пор" git branch --list
" изученный, чтобы всегда произвести отдельную ГОЛОВУ как первый объект (когда ГОЛОВА отсоединяется, конечно), независимо от локали.
(Который прибывает в [1 114] добавление показа проверенных ответвлений )
можно тогда выдержать сравнение, эта запись с git branch --show-current
( Мерзавец 2.22 )
См. фиксация 28438e8 (18 июня 2019) [1 117] Matthew DeVore (matvore
) .
Помог-: Johannes Schindelin (dscho
) , и Jonathan Nieder (artagnon
) .
<глоток> (Объединенный [1 120] Junio C Hamano - gitster
- в [1 121] фиксация 92f66 фарадеев , 09 июля 2019) глоток>
ref-filter
: вид отсоединил ГЛАВНЫЕ строки во-первых, Прежде чем этот патч, "
git branch
" поместит"(HEAD detached...)
" и"(no branch, rebasing...)
" строки перед всеми другими ответвлениями в большинстве случаев за исключением при использовании сообщений китайского языка.
zh_CN
обычно использование полноширинное"(
" символ (кодовая точка FF08) для соответствия полноширинным пропорциям китайских символов и переведенным строкам, которые мы имели, действительно использовало их. Это означало, что отдельная ГЛАВНАЯ строка появилась бы после всех локальных судей и даже после удаленных судей, если бы были какие-либо .AFAIK, это иногда не издает неприятный звук для наблюдения круглой скобки полуширины в "полноширинном" тексте как на языках CJK, например, когда нет никаких предыдущих символов или после заключенного в скобки фрагмента текста.
Путем удаления круглой скобки из локализуемого текста, мы можем совместно использовать строки с [1 112] и удалить предостерегающий комментарий к переводчикам.Удаляют
(
из локализуемой части сообщений, таким образом, сортировка происходит правильно независимо от локали.
Самое короткое я получил работу над конвейерами битоприемника:
git show -s --pretty=%D HEAD | awk '{gsub("origin/", ""); print $2}'