2016-10-27 2 views
1

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

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

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

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

+0

некоторая команда, которая может быть похожа на «ветвь git» - «OR» git -n checkout - », которая выдавала бы результат последней ветви и не вносила никаких изменений. – Champ

ответ

3

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

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

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

Обратите внимание, что the gitrevisions documentation описывает синтаксис @{-N}. Следует также отметить, что если нет n'th предыдущая ветвь, 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} непосредственно.

1

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

  • Что вы последняя зафиксированная (обозначается «фиксации»)
  • Что вы проверили (обозначается «проверкой»)
  • Когда вы (обозначено «pull»)

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

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

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

git reflog | grep -i "checkout: moving" 
+0

Я уже нашел, что могу использовать: git reflog | grep -i "checkout: move" | head -1 | cut -d '' -f6. Но я хотел знать, есть ли простая простая команда. Я обновляю вопрос, чтобы отразить эту потребность. Извините, что я недостаточно ясен. – Champ

Смежные вопросы