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