Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
Добрый день.

Имею следующую проблему.

Есть репозиторий. В нём 3 ветки.

Структура вот такая.


Проблема в том, что и консольный git log, и GUI'и - все показывают сугубо в виде одной ветки.


И я не пойму, что я делаю не так. Как мне посмотреть историю в виде, подобном тому, что на первой картинке?

Комментарии
21.04.2020 в 22:59

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
консольный git log


консоль растяни в ширину на 140+ символов
22.04.2020 в 00:23

Я ценю твоё мужество заваривать чай
В смартгите слева внизу панель с вашими локальными ветками, отмечаются галочками те что показывать в главном окне. Если отмечена только одна, то она и будет показываться
22.04.2020 в 10:44

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
CD_Eater, Не то чтобы это сильно помогло...




• Оно задублировало 1-й коммит, после которого пошла вторая ветка.
• "Добавлена функция применения правил" - отображено как отход в сторону. Хотя там просто комментарий подправил, т.к. правил несколько типов.

Такие дела.

Если что, ответвления у меня в следующих местах.
• Вторая ветка отходит от мастера и начинается с коммита "Добавлен пример для проверки функционала".
• Третья ветка отходит от второй и начинается с коммита "Добавлена функция декорирования токенов".
22.04.2020 в 10:53

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
Ryuzaki_rnd, чувак, я тебе сочувствую
git log --graph показывает что у тебя в репозитории есть НА САМОМ ДЕЛЕ
если это не соответствует твоим ожиданиям о трёх ветках, значит, ты что-то делал не так, и никаких трёх веток у тебя там нет

"Добавлена функция применения правил" - отображено как отход в сторону
это висячий коммит (на него не указывает ни одна ветвь), который будет вскоре утерян (сожран гитовским сборщиком мусора)

гит не тривиальный в использовании, потихоньку разбирайся на своих ошибках
22.04.2020 в 10:58

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
многочисленные гуёвые гит-клиенты красиво рисуют ветки
отображать дерево консольным гитом - это совсем на безрыбье )))
22.04.2020 в 10:58

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
Anhelica, Галочки стоят.


22.04.2020 в 11:04

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
Anhelica, Более того, оно даже в описании коммита пишет, что он только в одной ветке присутствует (см. область справа).



А отображает всё равно всё одной веткой.

* Начинаю подозревать, что дело в том, как у меня организованы ветки сейчас.
Т.е. у меня пока всё линейно, параллельных коммитов в разных ветках нет.
Т.е. в master не было коммитов после ухода на вторую ветку.
А во второй - не было коммитов после ухода на третью.

Возможно из-за этого оно всё линейно, в одну ветку отображает.
Но это пипец неудобно, т.к. не можешь посмотреть, какие коммиты какой ветке принадлежат.(
22.04.2020 в 11:08

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
а, дошло
всё с ветками у тебя правильно, у тебя просто все ветки пустые
а висячий коммит - это видимо коммит, от которого ты отказался (это версия до редактрования коммента), и это правильно, что его съедят
22.04.2020 в 11:13

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
ты считаешь пустую ветку веткой, а гит её веткой не считает, потому что она пустая )))
вот на твоём рисунке ты нарисовал зелёную линию, идущую вправо
а куда она идёт?
в гите все линии идут от одного коммита к другому
линия не может идти в никуда, поэтому гит не рисует такую линию
22.04.2020 в 11:16

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
CD_Eater

если это не соответствует твоим ожиданиям о трёх ветках, значит, ты что-то делал не так, и никаких трёх веток у тебя там нет

А git говорит, что есть.)



это висячий коммит

Да это я в курсе. Я там через --amend комментарий ко коммиту корректировал, видимо оно его и породило.
На него мне пофих, т.к. по содержимому он идентичен следующему, у которого коммент правильный.


многочисленные гуёвые гит-клиенты красиво рисуют ветки

Ну я вот и начал с гуёвых. Только там та же проблема.
В консоли попытался на случай, если гуёвые глючат.


ты, перед тем как вносить изменения в какую-то ветку, не переключаешься на неё, а вносишь изменения в текущий HEAD

Если бы это было так, все коммиты должны были бы быть в мастере, не так ли?

22.04.2020 в 11:22

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
почему гит-клиенты не рисуют все ветки? потому что в проектах обычно много заброшенных веток, и что все их вести линиями до текущего дня?
или вот ты работал в ветке, а потом замёрджил её в мастер. что должен считать гит: что эта ветка осталась или что она исчезла? рисовать её или нет в сегодняшнем дне?

короче, умершие ветки не тянутся, а остаются там где померли
и это логично
22.04.2020 в 11:22

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
CD_Eater, всё с ветками у тебя правильно, у тебя просто все ветки пустые

ты считаешь пустую ветку веткой, а гит её веткой не считает, потому что она пустая )))
вот на твоём рисунке ты нарисовал зелёную линию, идущую вправо
а куда она идёт?
в гите все линии идут от одного коммита к другому
линия не может идти в никуда, поэтому гит не рисует такую линию



Ну, т.е. моё предположение оказалось верным...

* Начинаю подозревать, что дело в том, как у меня организованы ветки сейчас.
Т.е. у меня пока всё линейно, параллельных коммитов в разных ветках нет.
Т.е. в master не было коммитов после ухода на вторую ветку.
А во второй - не было коммитов после ухода на третью.

Возможно из-за этого оно всё линейно, в одну ветку отображает.
Но это пипец неудобно, т.к. не можешь посмотреть, какие коммиты какой ветке принадлежат.(



В общем, основное неудобство - нельзя увидеть, где произошёл отход на другую ветку.(
gitg показывает отход от мастера, но не показывает отход на третью ветку от второй.(


22.04.2020 в 11:25

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
gitg показывает отход от мастера, но не показывает отход на третью ветку от второй.
ты предлагаешь зарезервировать за каждой веткой какую-то её позицию по горизонтали?
но веток слишком много, ширины экрана не хватит
мастер имеет особый статус )))
22.04.2020 в 11:31

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
CD_Eater, или вот ты работал в ветке, а потом замёрджил её в мастер. что должен считать гит: что эта ветка осталась или что она исчезла? рисовать её или нет в сегодняшнем дне?

Ну, этот момент решается тем, что после мержа, если ветка не продолжилась, - она рисуется в начале дерева, затем замыкается в мастер и на этом всё.

Т.е. если в прошлое отмотать - кольцо это увидишь, а на текущей дате ветка не рисуется, т.к. не продолжилась.


в проектах обычно много заброшенных веток, и что все их вести линиями до текущего дня?

Ну, может если бы их вели до текущего дня, то и не было столько заброшенных.)))

Т.к. было бы напоминание, что есть "не закрытая" ветка, т.е. ни с кем не слитая.
И ты либо сливаешь её с кем-то, т.е. она замыкается и больше не отрисовывается на текущем дне, либо удаляешь за ненадобностью.

А так да - получается что где-то остались открытые ветки, но они не рисуются и люди о них просто забывают.
И они висят мёртвыми лохмотьями.
22.04.2020 в 11:35

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
где-то остались открытые ветки, но они не рисуются и люди о них просто забывают.
И они висят мёртвыми лохмотьями.

это обычная ситуация в разработке
начали пилить фичу, потом решили, что она не нужна
ну не удалять же её из гита? )))
вот и висят "лохмотья", и это абсолютно нормально

после мержа, если ветка не продолжилась, - она рисуется в начале дерева, затем замыкается в мастер и на этом всё.
Т.е. если в прошлое отмотать - кольцо это увидишь, а на текущей дате ветка не рисуется, т.к. не продолжилась.

то есть, продолжать разработку в этой ветке ты почему-то не советуешь? )))
фичастые ветки мёрждатся в мастер многократно, это тоже нормально
22.04.2020 в 11:37

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
CD_Eater, ты предлагаешь зарезервировать за каждой веткой какую-то её позицию по горизонтали?
но веток слишком много, ширины экрана не хватит


Это решается путём "показываем данные о коммите при наведении мыши", например.

Тогда коммиты на ветках отображаются просто точками. И дерево не растягивается в ширину.
Можно ещё динамически отображать инфу о коммитах при наведении на какую-то ветку.

Даже если так не ухищряться, то, даже если выделять ширину, - убегание за край экрана не такая большая цена за удобство восприятия веток.
Ибо в текущем варианте - надо тыкаться в каждый коммит, читать его данные и искать тот, на котором началась другая ветка.
Что, как мне кажется, занимает гораздо больше времени, чем ползунок экрана вбок подвинуть. )))
22.04.2020 в 11:46

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
CD_Eater, то есть, продолжать разработку в этой ветке ты почему-то не советуешь? )))
фичастые ветки мёрждатся в мастер многократно, это тоже нормально


Не, я о том, что если ветка смержилась в мастер только один раз и на этом сдохла - то она не отображается на текущей дате.
А если в ней продолжается активность - отображается.)



22.04.2020 в 11:49

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
В общем, ладно.

Основное я понял.
1. У меня всё в порядке. Просто пока идёт линейная структура и потому всё линией и отображается.
2. gui, отвечающий моим запросам - либо продолжать искать, либо вкуривать устройство гита и писать самому под свои задачи (что явно не ближайшая перспектива).
22.04.2020 в 11:56

тролль - это не только ценный жир, но и 3-4 легкоусвояемых коммента ежедневно
убегание за край экрана не такая большая цена за удобство восприятия веток.
ну представь у тебя 100 веток, и из них только 3 нужных, остальные тупо резервируют пустое место )))
22.04.2020 в 12:14

Правильного ответа нет. Любой выбор приводит к жертвам, любое решение требует платы. | Лишь навык имеет значение.
CD_Eater, Ну, это уже вопрос анализа, да.

Учитывать, в какие ветки есть коммиты и как давно они сделаны.
И в соответствии с этим наиболее актуальные сдвигать ближе к мастеру.

Но это может попутать порядок веток, к которому народ привык, когда их было немного...
Хм... Ну, допустим, обойти это можно схлопыванием веток.

По типу того, как гитхаб схлопывает текст, который не менялся и показывает лишь участки, где были изменения.
Такой выход - наверное имеет место, да.

Причём, надо предусмотреть возможность ручного скрытия/отображения.
Т.е. ты видишь только те ветки, которые тебе нужны. А не все, которые в работе.

Но при этом не теряешь, т.к. у тебя сверху отображается, что между соседними ветками N скрытых.