Git виновная строка
Возможно ли каким-либо образом для GIT найти, какая фиксация ввела определенную строку кода в конкретный файл? Это предполагает, что с этой строки было добавлено много коммитов. Или это что-то необходимо сделать в script при просмотре GIT вины всех коммитов для файла, в котором присутствует строка?
Чтобы уточнить
Оригинальный файл- > Линия Добавлена в файл и зафиксирована → Многие другие коммиты добавляют другие строки и меняют код
Ответы
Ответ 1
вы можете использовать git blame -l filename
для получения номера sha1 при изменении строки
вы также можете использовать --reverse:
- обратный
Пройдите историю вперед, а не назад. Вместо того, чтобы показывать версию, в которой появилась строка, это показывает последнюю ревизию, в которой существовала строка. Для этого требуется ряд изменений, таких как START..END, где путь к вине существует в START.
см. http://www.kernel.org/pub/software/scm/git/docs/git-blame.html
Ответ 2
Предполагая, что строка не изменилась с момента ее добавления, просто:
git blame <that file>
, а затем найдите строку, в которой вы находитесь.
Если строка была изменена с момента ее добавления, вы можете git blame
найти последний коммит, на котором была изменена строка, а затем git checkout <sha>~1
(где sha
- это та, которая отображается в оригинал git blame
) и git blame
снова, чтобы вернуться в историю для этой строки.
Ответ 3
Вы можете обвинить конкретную строку кода, как это.
git log -S 'THE-CODE'
Ответ 4
Кажется, вы можете использовать git log -L для проверки файла.
Например, я хочу проверить коммиты для file.c, строка от 55 до 60:
git log -L55,60:file.c