2014-02-06 3 views
1

TL; DR: есть ли способ перечислить все коммиты, которые модифицировали один файл, включая коммиты? Зная, что git log -p --cc {filename}, как предложено here, не делает этого трюка.Git: показать историю одного файла, в том числе слияния


В следующем сценарии:

  • мастер, branch1 и branch2 существует
  • фиксации С1 вводит изменение в branch1
  • совершить М1 сливает branch1 в мастер
  • мастер объединены в branch2, но есть конфликты, и слияние случайно нарушает некоторые изменения, внесенные C1; так что мы в конечном итоге с слиянием фиксации M2, который создает разбитое branch2
  • совершить M3 объединяет branch2 в мастера, тем самым нарушая хозяину

Я понимаю, этот сценарий является плохой новостью (там должны были автоматизированные тесты, чтобы реализовать branch2 был сломан, а M3, должно быть, никогда не происходило в первую очередь и т. д. Вернуться к печальной реальности людей, которые иногда были людьми и привинчивались.)

Нам было трудно это осознать, потому что, хотя мы точно знал, какой файл вызвал ошибку, мы не нашли способ перечислить все коммиты.

После this SO вопрос, мы попытались:

git log -p --cc {filename} 

Это только печатает совершает до C1.

Что нам не хватает? Спасибо.

ответ

0

Я хотел бы попробовать это:

git log -m --no-max-parents -p {filename} 
+0

Он по-прежнему не будет показывать слияние совершает. Может быть, ничего не стоит, что наши хранилища управляются инструментами Atlasian «Stash»; поэтому в нашем случае некоторые коммиты слияния являются «автоматическими» и полностью выполняются на сервере, на котором размещен репозиторий ... может ли это что-то изменить? – phtrivier

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