2017-01-12 11 views
2

Пользователь A зафиксирован (1) в ветви «ведущий».Возможно ли в git посмотреть, кто объединил ветку, если она была без новой фиксации?

Пользователь B совершил (2) и (3) на основании (1) в ветке «особенность».

Пользователь A объединен (3) в ведущую ветвь.

Так что теперь это выглядит следующим образом:

  • hash3 - (происхождение/мастер, происхождение/функция) фиксация 3 (Пользователь B)
  • hash2 - совершить 2 (Пользователь B)
  • hash1 - commit 1 (Пользователь A)

Теперь кажется, что Пользователь B совершил переход в ведущую ветку. Но он этого не сделал. Это похоже только на то, что Пользователь А слился. Но записи этого слияния нет. Отображается только фиксация.

Есть ли запись, которая рассматривает это как два разных действия (commit then merge), сделанные двумя разными пользователями, вместо того, чтобы просто показывать их как одну вещь?

+0

Вы говорите, что вы хотите способ определить, какие пользователи способствовали слияния коммита? –

+0

Да. Когда это фактическое слияние кода, а не просто изменение имен ветвей, оно отображается в другой фиксации. Но в этом случае он не показывает, кто изменил имя. –

+0

Мне нелегко следовать, вы могли бы показать нам диаграммы (текст, использовать '-' для разделения коммитов и т. Д.), Чтобы объяснить? –

ответ

2

Похоже, у вас есть сценарий, когда один пользователь быстро пересылает ветку master с помощью функции, и в процессе происходит коммиты, которые были сделаны другим разработчиком. После этого нет следа, так что, похоже, два разработчика совершили эти коммиты, когда на самом деле ускоренная перемотка была выполнена одним разработчиком.

Существует способ принудительного слияния, даже если произошла быстрая перемотка вперед, и слияние не потребуется. Если вы планируете объединить feature в master, вы могли бы гарантировать слияние совершить с помощью --no-ff флага:

git checkout master   # switch to master 
git merge --no-ff feature # merge feature into master; force merge commit 

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

Ссылка:Why does git fast-forward merges by default?

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

  • Нет связанных вопросов^_^