Отображение структуры ветвления Git
Есть ли способ показать только структуру ветвей в Git? Существует ряд инструментов, которые отображают коммиты графически, но в моем случае список так длинный, что невозможно увидеть структуру. Я предполагаю, что git -log может быть ответом, но я не могу найти никаких переключателей, которые показывают только ветвящиеся коммиты. Это вместе с "-graph -branches -oneline -all" может сделать трюк.
EDIT: Я ищу способ сделать это в Ubuntu.
Ответы
Ответ 1
Я не уверен, что вы подразумеваете под "отраслевой структурой".
git log
может помочь визуализировать ветки, созданные через коммиты (см. сообщение в блоге):
[alias]
lg = log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative
git config --global alias.lg "log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative"
Но если вам нужны только разные ветки HEAD, вы можете попробовать что-то вроде строк:
heads = !"git log origin/master.. --format='%Cred%h%Creset;%C(yellow)%an%Creset;%H;%Cblue%f%Creset' | git name-rev --stdin --always --name-only | column -t -s';'"
(используя column command
, и здесь только для фиксации с момента последнего origin/master
commit)
Примечание: Jakub Narębski рекомендует добавить опцию --simplify-by-decoration
, см. его ответ.
Ответ 2
Возможно, вам нужна опция --simplify-by-decoration
, см. git журнал:
- упрощать-на-украшение
Выбраны фиксации, относящиеся к какой-либо ветки или тегу.
Итак, это будет
git log --graph --simplify-by-decoration --all
или после VonC answer
git log --graph --simplify-by-decoration \
--pretty=format:'%Cred%h%Creset-%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' \
--abbrev-commit --date=relative
Ответ 3
Основное решение:
git log --graph --all
Если вы хотите получить больше фантазии:
git log --graph --all --pretty=format:"%Cblue%h%Creset [%Cgreen%ar%Creset] %s%C(yellow)%d%Creset"
Ответ 4
Может, мне что-то не хватает, но никто, похоже, не упомянул gitk --all
.
Ответ 5
gitx, если вы находитесь на mac
smartgit для mac и или Windoze (но я его не использовал)
git-gui, затем для Ubuntu
Ответ 6
Чтобы получить дополнительную информацию о том, как конкретная ветка относится к другим ветвям вашего репозитория и пультов, вы можете использовать git wtf
, который является добавлением в script Уильямом Морганом: http://git-wt-commit.rubyforge.org/
Он создает сводную информацию, например:
$ git wtf
Local branch: master
[x] in sync with remote
Remote branch: origin/master ([email protected]:willgit/mainline.git)
[x] in sync with local
Feature branches:
{ } origin/experimental is NOT merged in (1 commit ahead)
- some tweaks i'm playing around with [80e5da1]
{ } origin/dont-assume-origin is NOT merged in (1 commit ahead)
- guess primary remote repo from git config instead of assuming "origin" [23c96f1]
(пример, взятый из вышеуказанного URL-адреса).