Как узнать, к какой ветке принадлежит "git log"?
Если я делаю git log
, есть ли какой-либо параметр, который я мог бы указать, чтобы иметь возможность указывать из вывода, к какому ветки относится каждая фиксация?
Изменить: пояснить, я понимаю, что фиксация может быть частью двух ветвей (например). Я хочу получить самую последнюю ветвь, к которой принадлежит фиксация в log
. Итак, если я сделал ветку с именем foo
из master
. Он будет принадлежать обоим ветвям, но я хочу получить foo
.
Ответы
Ответ 1
С git log
вы уже получаете все коммиты из текущей ветки, в которой вы находитесь.
Если вы хотите видеть коммиты из объединенных веток, вы можете использовать
$ git log --pretty=oneline --graph
Чтобы создать дерево журналов и посмотреть, с чем связаны объединенные ветки, вытекает из.
--graph
сделает дерево фиксации и
--pretty=oneline
сделает визуализацию одной строки для каждой фиксации
Чтобы добавить ветки (как ссылки) в журнал:
$ git log --all --source --pretty=oneline --graph
Чтобы отобразить ветки с фиксациями:
$ git show-branch
Ответ 2
Я думаю, что то, что вы ищете, - очень полезная команда:
git branch -a --contains <SHA1sum-of-commit>
..., который расскажет вам каждую ветку (как локальную, так и удаленную), которая содержит эту фиксацию.
К сожалению, я не думаю, что есть опция git log
, которая просто выводит это для каждой фиксации. Использование --all --source
близко, но отображает только одну ветвь для каждой фиксации. Однако, если вы нажмете на фиксацию в gitk --all
, вы увидите, что в ней перечислены все ветки, на которых включена фиксация.
Есть одна часть вашего вопроса, которая не очень хорошо определена, однако вы спрашиваете:
Я хочу получить самую последнюю ветвь, которая принадлежит журналу фиксации в
Мне непонятно, что вы подразумеваете под этим - "самая последняя ветвь" может быть (a) последним созданным ref (b) последним измененным ref (c) ветвью с последней фиксацией на нем и т.д. и т.д. Вероятно, лучший способ определить, что вы хотите, с точки зрения графика фиксации.
Ответ 3
Вы пробовали вариант "--decorate" для git журнала?
У меня есть этот псевдоним в моем .gitconfig:
[alias]
k = log --graph --oneline --abbrev-commit --decorate
Он показывает аналогичный граф, такой как gitk, с названиями ветвей, "украшенными", кроме последнего фиксации в ветке.