Когда код изменен в git
Я не думаю, что есть более простой способ сделать это, но я думал, что попрошу быть уверенным.
У меня есть код, в котором важная строка была удалена (мной). Я хотел узнать, в чем именно я случайно удалил эту строку. Единственный способ, которым я мог найти это, - запустить git "diff'ing" на последующие ранее коммиты, один за другим, пока не найду commit, в котором была изменена строка.
Есть ли какой-либо более простой способ узнать, что зафиксировать определенную часть кода?
Ответы
Ответ 1
Если вы только изменили или добавили строку, вы могли бы, конечно, использовать git blame
. Если вы только полностью удалили линию, то это, конечно, не поможет вам.
Если вы знали хотя бы часть текста в строке, которая была удалена, вы можете использовать опцию "pickaxe" для git log
, чтобы ограничить найденные вами коммиты.
например.
git log -S"important phrase" -p -- <file>
Ответ 2
git log -p
предоставит вам полный журнал с отличиями, который вы могли бы искать или прокручивать.
git bisect
предоставит вам инструментальную поддержку для поиска. Начните его где-нибудь далеко назад, у которого есть строка, скажите git bisect good
, когда строка присутствует, и git bisect bad
, когда это не так. В конце концов, Git будет сходиться к фиксации, где он был удален.