Найти все коммиты в конкретной ветке в GIT - PullRequest
0 голосов
/ 06 мая 2011

Это может быть повторный вопрос, но я не нашел точных ответов.

Допустим, у меня есть 2 ветки br1 и br2 с 3 коммитами в каждой.

br1

  • совершить
  • коммит б
  • коммит c

br2

  • commit d
  • совершить е
  • коммит f

Когда я сливаюсь с br2 на br1, git log на br1 show фиксирует a, b, c, d, e, f.

Допустим, у меня есть 2 ветки br1 и br2 с 3 коммитами в каждом.

br1 после слияния с br2

  • совершить
  • коммит б
  • коммит с
  • совершить д
  • совершить е
  • коммит f

Есть ли способ отфильтровать коммиты, которые были созданы только на br1? (Я пробовал git log br1..br2, но есть ли другой способ?)

Если слияние было Быстрая перемотка вперед или Automerge, GIT запишет какой-нибудь коммит для слияния? (я вижу коммит, когда есть конфликт, но не в automerge)

Ответы [ 3 ]

1 голос
/ 06 мая 2011

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

При выполнении быстрой перемотки единственное, что изменяется, - это то, что коммит, на который указывает определенная ветвь, переключается, поэтому никакой дополнительной фиксациибудет записано.Если вы хотите записать дополнительный коммит, используйте git merge --no-ff.

0 голосов
/ 30 мая 2012

Проблема с git log br1..br2 состоит в том, что он будет пытаться подавить коммиты, которые являются частью br1, но теперь все коммиты являются частью br1, поэтому ничего не будет отображаться.

Что вы можете сделать, это найти коммит прямо перед слиянием br2; git log br1^..br2, но это сработает, только если br1 не продвинется вперед.

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

git log merge^1..merge^2
0 голосов
/ 06 мая 2011

Я не уверен, почему это важно знать, но если это так, то вы можете создать новую ветку из br1 и использовать эту ветку для объединения br2.Затем br1 и br2 остаются неизменными, и вы можете сказать, какие из них включают какие изменения, а у вас также есть ветвь слияния, содержащая оба набора изменений.

br1

  • a
  • b
  • c

br2

  • d
  • e
  • f

mbr1_2

  • a
  • b
  • c
  • d
  • e
  • f
...