Подтвердить что ты не робот

Когда код изменен в git

Я не думаю, что есть более простой способ сделать это, но я думал, что попрошу быть уверенным.

У меня есть код, в котором важная строка была удалена (мной). Я хотел узнать, в чем именно я случайно удалил эту строку. Единственный способ, которым я мог найти это, - запустить git "diff'ing" на последующие ранее коммиты, один за другим, пока не найду commit, в котором была изменена строка.

Есть ли какой-либо более простой способ узнать, что зафиксировать определенную часть кода?

4b9b3361

Ответ 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 будет сходиться к фиксации, где он был удален.