2014-02-12 3 views

ответ

1

Я не думаю, что во всех случаях есть общий ответ на этот вопрос. Рассмотрим:

A----B----C 
     \ 
     D----E----F 
      \ 
       G----H----I 

Где была ветка, содержащая фиксацию, которую я создал? Была ли это ветвь, созданная из E или из B. Оба варианта - в одном случае у вас есть ветвь, созданная в D из B, а затем другая ветвь, созданная в G из E, в другой, вы создали D из B, а затем F создан из Е - другими словами, то же дерево может быть представлено следующим образом:

A----B----C 
     \ 
     D----E----G----H----I 
      \ 
       F 

или даже это:

A----B----D----E----G----H----I 
     \   \ 
     C   F 

Все три из указанных выше топологически эквивалентны, и все три будет давать разные ответы на вопрос «где была начата отрасль?» ...

+0

Филиал 'I' начался с фиксации, с которой он сначала разветвлен. Это не очевидно из дага в одиночку, но информация сохраняется на 'git'. – chepner

+0

@chepner True, если все ветви были созданы локально. Однако, если 'userA @ repoA' создает ветвь, толкает ее в' origin', а затем 'userB @ repoB' извлекает и отслеживает эту ветку и добавляет к ней больше, эта информация, вероятно, недоступна' userB @ repoB' без значительных судебных усилий ... В общем случае все, что у вас есть, - это DAG. Дата штампов и т. Д. Может добавить дополнительную информацию, но это не простой однострочный шрифт в целом ... – twalberg

2

См. .git/logs/refs/heads/BRANCHNAME. Первая строка должна содержать информацию о создании ветки, включая пользователя, который ее создал, и фиксации, из которой ветвь «разветвляется».

git reflog может быть использован для просмотра программного обеспечения; см. git help reflog для деталей.

+1

Я не думаю, что вы найдете что-нибудь здесь, кроме информации о * местных * ветвях. Информация о филиалах, созданных удаленно, не будет. – larsks

Смежные вопросы