Git log всех веток только в текущем дереве
Я хочу получить журнал всех веток только в текущем дереве.
Длинная история
Учитывая историю мерзавцев ниже:
$ git log --all --decorate --oneline --graph
* 3d0cb35 (HEAD, master) 4th commit
| * a43b07c (branch) 4th commit in branch
|/
* 722745a 3rd commit
* 46d0d84 2nd commit
* 3060fe0 1st commit
Допустим, я создаю сиротскую ветвь.
$ git checkout --orphan orphan
Switched to a new branch 'orphan'
Добавьте коммит в ветке orphan и попробуйте использовать первую команду, чтобы получить историю git "второго" дерева.
$ git log --all --decorate --oneline --graph
* 202f3c4 (HEAD, orphan) Orphan branch
* 3d0cb35 (master) 4th commit
| * a43b07c (branch) 4th commit in branch
|/
* 722745a 3rd commit
* 46d0d84 2nd commit
* 3060fe0 1st commit
В приведенном выше примере выглядит так 3d0cb35
отец 202f3c4
что не правда Как я могу получить коммит только одного из деревьев?
1 ответ
Я не уверен, что есть абсолютно чистый способ делать то, что вы хотите. Но вот одно из предложений... Если вы знаете, что набор веток, которые вы хотите проверить, это тот, который основан на коммите 3060fe0
тогда вы можете использовать git branch --contains 3060fe0
чтобы определить потенциальные ветви, и использовать это, чтобы накормить git log
команда. Что-то вроде:
git log ..... `git branch --contains 3060fe0`
Но опустите --all
вариант, поскольку это переопределит ваш явный выбор ветки...
Для удобства вы можете добавить тег на каждый корень дерева, например git tag tree1 3060fe0
тогда вы могли бы просто использовать git branch --contains tree1
,