2017-02-22 18 views
0

Из запроса тягового найденного в here мы можем видеть, что в файлеКак получить совершить хэш, который добавил строку в файл, который уже удален текущие фиксации в хранилище GitHub

/Java /org/wso2/carbon/analytics/apim/internal/TemplateManagerInitializerComponent.java

38,39 и 40 строк были удалены. Теперь мне нужно определить хеш-фиксацию (хеши), которая добавила эти строки (удаленные 38,39 и 40 строк) в файл, но представление вины для файла, показанного в here, не показывает историю удаленных строк. Как получить эту информацию из github. Заранее спасибо

ответ

0

Попробуйте git log -S <string>:

git log -S "import javax.xml.bind.JAXBException" 

со ссылкой на документ (git help log) о -S и его кузена -G:

-S<string>
Посмотрите на различия, которые изменяют число вхождения указанной строки (т. е. дополнение/удаление) в файле. Предназначен для использования сценаристом.

Это полезно, когда вы ищете точный блок кода (например, структуру) и хотите знать историю этого блока с , он появился впервые: используйте функцию итеративно, чтобы прокормить интересный блок в прообразе обратно в -S и сохранить , пока вы не получите самую первую версию блока.

-G<regex>
Ищите различия, текст патча содержит добавленные/удаленные строки, которые соответствуют <regex>.

Чтобы проиллюстрировать разницу между -S<regex> --pickaxe-regex и -G<regex>, рассмотрим коммит со следующим дифф в же файле:

+ return !regexec(regexp, two->ptr, 1, &regmatch, 0); 
    ... 
- hit = !regexec(regexp, mf2.ptr, 1, &regmatch, 0); 

Хотя git log -G"regexec\(regexp" покажет это совершить,
git log -S"regexec\(regexp" --pickaxe-regex не будет (потому что номер вхождения этой строки не изменились).

Для получения дополнительной информации см. Запись кирка в gitdiffcore (7).