Не совсем. Это не то, что гадкие треки На самом деле, он даже не отслеживает тот факт, что newbranch
был специально разветвлен «от master
». (Кроме того, я предлагаю не использовать "fork" для ссылки на отношения между ветками, поскольку "fork" имеет особое значение для git-репозиториев и проектов OSS в целом.)
Как предполагает RomainValeri, при определенных обстоятельствах вы могли бы посмотреть метки времени файловой системы для метаданных, связанных с веткой; но они не гарантируют ничего. Иногда упомянутый файл либо не существует, либо создается в то время, которое не имеет отношения к созданию ветки. И даже если он действительно существует и действительно отражает правильную временную метку, это не будет иметь большого значения; потому что «создание ветки» означает только то, что была создана новая ссылка. Это не значит, что он (или когда-либо был) извлечен, или что-то сказано о том, какие ссылки будут содержать новые коммиты.
Самый простой способ визуализировать, как обстоят дела сейчас, это получить график фиксации, который показывает позиции веток и других ссылок. Вы можете использовать что-то вроде git log --graph --all --full-history
. (Опция --full-history
, вероятно, не нужна, но поскольку дело в том, что мы не совсем уверены в том, что происходит, это даст наиболее правдоподобную картину.) Или вы можете обнаружить, что графический интерфейс облегчает чтение; Я часто использую gitk --all --full-history
, когда мне нужно посмотреть на «большую картинку».
Имейте в виду, что коммиты до того, как ветка была создана, будут по умолчанию показаны. То есть, если у вас есть
A -- B -- C <--(master)
\
D <--(newbranch)
тогда журнал D
по умолчанию включает в себя A
, B
и D
, так как это полная история кода, существующего в newbranch
. Если вы видите C
, это говорит о том, что вы вообще не используете newbranch
(а приведенный выше график не тот, который у вас действительно в этом случае).
Остальное может быть касательным, но на всякий случай ...
Причина, по которой A
и B
включены по умолчанию, заключается в том, что git снова не знает / не заботится, какая ветка была создана из какой другой ветки, или что-то подобное. На приведенном выше рисунке newbranch
мог быть исходной веткой, а master
мог быть разветвлен от нее в B
; для мерзавца это то же самое, что newbranch
, разветвляющийся от master
в B
. Или D
мог быть создан в отдельном состоянии HEAD, а newbranch
мог быть создан после сохранения факта D
. Или может случиться много других вещей.
Если вы хотите видеть просто коммитов, которые были добавлены в newbranch
, вы можете сказать что-то вроде git log master..newbranch
(сообщая журналу исключить любые коммиты, которые являются частью истории master
) .