Используем в своей работе git-flow, сегодня дошло до конфликта с начальством, что мы якобы ведем разработку не по регламенту описанному по этому подходу. Есть ли интерфейс, программа или еще что-то, где можно наглядно ткнуть к коммит и там будет написано, что данная ветка, в которой этот коммит вышла из такой-то ветки, плюс при слитии веток, когда кликаем в merge commit показывает какая ветка была влита. Используем Смартгит, но упорно там не видит и не хочет понимать принцип графа в гит. Буду премного благодарен.
В принципе, если достаточно просто отображения дерева — можно посмотреть на GitExtensions. Она красиво показывает дерево со всеми манипуляциям по веткам.
SourceTree еще умеет так же, но у него режим отображения мне меньше нравится, хотя умеет побольше.
если вы пользуетесь git-flow то согласно переводу статьи разработчика этого инструмента при создании мёрджа используется флаг --no-ff что даёт:
Флаг --no-ff вынуждает Git всегда создавать новый объект коммита при слиянии, даже если слияние может быть осуществлено алгоритмом fast-forward. Это позволяет не терять информацию о том, что ветка существовала, и группирует вместе все внесённые изменения.
поэтому инфа о ветках должна сохраняться даже если ветки больше нет
На графе ветки есть, но я не могу доказать что вот этот коммит, в который я показываю был именно в конкретной ветке и что она была чекантнута из другой конкретной.
меня тоже постоянно удивляет тот факт, что коммит не знает в какой ветке он был создан… могу посоветовать, создать для каждой операции простенькие sh-скрипты, которые будут собирать лог, кто, что и в какой ветке делал и работать с гитом через них. совет, конечно, слабенький, но можно потом открыть лог и показать вот этот коммит был сделан в этой ветке. хотя могут усомниться в истинности лога, но хоть что-то будет.
Если ветки A и B были слиты и ветка B была удалена, то в Git невозможно определить, в какой из веток: A или B, или еще какой-нибудь, ныне несуществующей C, были сделаны коммиты.
В принципе разница между (A) git merge B и (B) git merge A есть, но бывают такие хитросплетения и ребэйзы, плюс человеческий факто никто не отменял (у нас постоянно вместо (master) git merge feature вливают master в feature ветку ). Плюс после удаления ветки восстановить её имя нельзя.