Intereting Posts
Как определить, является ли рабочее пространство TFS локальной или серверной рабочей областью Установка пакета R из GitHub без привилегий администратора (например, локально) Дженкинс: добавление переменных CUSTOM для сборки где хранить снимки в svn git: пытается объединить ветки, но есть ТОНЫ конфликтов, и большинство из них / не должны / быть конфликтами Есть ли способ повторить операцию отмены git для файлов с ограниченными правами Резервное копирование небольшого веб-сайта в хранилище в github git удалить файл, начинающийся с двоеточия Получите git diffftool, чтобы отправить свой собственный diff для просмотра Как получить хеш фиксации, который добавил строку в файл, который уже удален текущим фиксатором в репозитории github gerrit: push: никаких изменений между предшествующим фиксацией и новым фиксацией. Не удалось вытащить изменения История Delphi – контроль источника Как управлять пользователем git? Capistrano игнорирует файл netrc git: просмотр изменений после 'git fetch'

Как найти последнюю ветку в git

Мы можем проверить последнюю ветку с помощью git checkout - , но есть ли способ узнать, что такое последняя ветка, а не проверить?

EDIT: Я уже нашел, что могу использовать:

 git reflog | grep -i "checkout: moving"|head -1|cut -d' ' -f6 

Но я хотел знать, есть ли простая простая команда. Я обновляю вопрос, чтобы отразить эту потребность. Извините, что не достаточно ясно

Вывод проб (как производится git reflog | ... ) делает его достаточно ясным.

git rev-parse команда может быть объединена с синтаксисом ссылки поиска , чтобы сделать это на одном дыхании:

 $ git rev-parse --symbolic-full-name @{-1} refs/heads/stash-exp $ git rev-parse --abbrev-ref @{-1} stash-exp 

Обратите внимание, что документация gitrevisions описывает синтаксис @{- N } . Заметим также, что если нет N-й предыдущей ветви, rev-parse молча печатает ничего:

 $ git rev-parse --abbrev-ref @{-2} && echo ok || echo fail master ok $ git rev-parse --abbrev-ref @{-3} && echo ok || echo fail ok 

И, конечно же, в большинстве мест, где вам может понадобиться имя, вы можете просто использовать синтаксис @{-1} .

git reflog – это то, что вы хотите использовать. В этом вы найдете:

  • То, что вы сделали последним (обозначается как «commit»)
  • Что вы проверили (обозначается «checkout»)
  • Когда вы вытащили (обозначили «pull»)

То, что вы проверили, важно здесь; reflog будет использовать формат, обозначенный как «checkout», и указать «переход от A к B» при просмотре определенных ветвей.

Простой grep для «checkout: moving» даст вам список ветвей, которые вы посетили; последний находится наверху.

Полная команда для полноты:

 git reflog | grep -i "checkout: moving"