2010-08-25 4 views
1

Каков наилучший способ просмотра коммитов, которые первоначально были привязаны к определенной ветке. Например, если у меня есть две ветви Джек и Кейт:Просмотр не подключенного к ветке на git

Jack: A-B-C-m-F 
      /
Kate: D-E 

Есть ли команда, которая перечисляет A, B, C и F, как коммиты, сделанные на Джека. Я знаю, что есть способы визуализировать это, но в проектах с большим количеством ходов очень сложно проследить все.

ответ

1

Существует способ!

git log --first-parent Jack 

Вы также можете передать опцию --first-parent в gitk, если вы предпочитаете графический вид. (И, как обычно, с gitk, вы также можете установить эту опцию изнутри gitk, перейдя к просмотру> нового представления и проверив опцию «Ограничение на первый родитель».)

Это не совсем то, что вы просили - то, что он на самом деле делает, это следовать только за первым родителем коммандов слияния (слияние - в родительский, а не с объединенным родителем). В вашем случае это даст вам именно то, что вы хотите.

Просто имейте в виду, что git фактически не записывает, в какой ветке вы были, когда вы делали заданную фиксацию. Эта информация не имеет особого значения; важно, чтобы содержал коммита (в том числе, кто его родитель (ы)). Итак, если вы на самом деле сделали фиксацию B на какой-либо другой ветке, затем объединили ее (перемотку вперед) в Jack, B все равно будут перечислены.

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