Ответ 1
попробуйте следующее:
git log --graph --decorate
У меня есть сценарий, в котором есть несколько ветвей удаленного отслеживания в моем локальном репозитории, с которыми я должен синхронизироваться. Наша модель рабочего процесса:
Я заметил, что "git status" не показывает мне, в какой ветки моя локальная ветвь основана, если что-то не изменилось; то есть незафиксированные локальные изменения или недавняя выборка помещает мою локальную ветвь за время. Есть ли какой-то способ узнать, на чем основана моя локальная ветвь, не меняя ничего? Что-то вроде: "git status -showparentbranch" или какая-то другая команда, которая покажет это. Иногда я сталкиваюсь с этой потребностью, но пока не знаю, как ее удовлетворить.
попробуйте следующее:
git log --graph --decorate
Git не отслеживает, какие ветки были переданы. Невозможно сказать. Если коммиты произошли в вашем репо, вы можете проверить reflog, но об этом. Взгляните на объяснение DAG в в книге Pro Git - также прочитайте там рефлог.
Вы также можете лучше визуализировать историю с помощью gitk --all
или git log --graph --decorate
Надеюсь, что это поможет.
git branch -vv
будет:
... из этого вы сможете определить удалённую ветвь текущей активной ветки и многое другое.
Если у вас много локальных веток, список может быть очень длинным. Используйте git branch -vv | grep SOMEWORD
, чтобы ограничить вывод только ветвями, содержащими SOMEWORD. Если вы можете придумать слово, уникальное для вашего ветки, вы получите лучший фильтр (только один результат).
Вы также получите дополнительные данные на выходе, а именно номер (SHA1) и сообщение последнего фиксации. Для этого применяется фильтр grep. Я не мог найти способ исключить его.
Из Git отраслевая документация:
-v
-vv
- многословный
В режиме списка отобразите sha1 и зафиксируйте строку темы для каждой главы вместе с отношением к ветке вверх по течению (если есть). Если вы даете дважды, напечатайте также имя ветки вверх по течению (см. Также Git удаленное шоу).
(Исходя из вашего комментария, да, кажется, что "правильный" вопрос задавал бы о ветке "remote", а не о "родительской" ветке, но это то, что я искал тоже!:))
Вы также можете попробовать:
git rev-parse --abbrev-ref --symbolic-full-name @{u}
И используя этот псевдоним в файле .gitconfig:
[alias]
showparentbranch = rev-parse --abbrev-ref --symbolic-full-name @{u}
Затем вы можете просто вызвать:
git showparentbranch
Протестировано на git версии 2.10.2.windows.1