Вы можете использовать опцию -S<search-string>
для git log
, чтобы найти, какие коммиты добавили или удалили определенную строку из файла. ¹ Итак, если вы знаете, что класс ToasterFactory
был введен только в ветке free
Вы можете сделать следующее, чтобы увидеть, какие коммиты слияния привели это в master
:
git log -SToasterFactory --merges master
... или, если это могло произойти из-за ребаз или вишни, вы можете просто сделать:
git log -SToasterFactory master
Если это был коммит слияния, который внес все изменения с master
, вы можете попробовать отменить этот коммит слияния, например с:
git revert <SHA1-OF-MERGE-COMMIT>
Единственное предостережение, касающееся этого, заключается в том, что если позднее вы захотите вернуться, вам, возможно, придется сначала отменить возврат .
speaking Строго говоря, эта опция возвращает коммиты только в том случае, если количество вхождений этой строки в конкретном файле. В git версии 1.7.4 или новее вы можете использовать опцию -G
.