Узнать, когда код изменился в git - PullRequest
12 голосов
/ 19 апреля 2011

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

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

Есть ли какой-нибудь более простой способ узнать, для какого коммита была изменена конкретная часть кода?

Ответы [ 2 ]

24 голосов
/ 19 апреля 2011

Если вы только изменили или добавили строку, вы, конечно, можете использовать git blame. Если вы только полностью удалили строку, то это, конечно, вам не поможет.

Если вы знали хотя бы часть текста в строке, которая была удалена, вы можете использовать опцию «кирка» для git log, чтобы ограничить коммиты, которые вы ищете.

1007 * Е.Г. *

git log -S"important phrase" -p -- <file>
5 голосов
/ 19 апреля 2011

git log -p предоставит вам полный журнал с различий, который вы можете искать или прокручивать.

git bisect предоставит вам инструментальную поддержку для поиска.Начните его где-нибудь далеко назад, у которого есть линия, скажите ей git bisect good, когда линия присутствует, и git bisect bad, когда ее нет.В конце концов, Git сойдется с коммитом, в котором он был удален.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...