Как узнать, в какой коммит был добавлен тот или иной код?

Я хочу узнать, в какой фиксации я добавил код, приведенный ниже:

if (getListView().getChildCount() == 0)
                getActivity().findViewById(android.R.id.empty).setVisibility(View.VISIBLE);

Как мне это достичь?

Ответы

Ответ 1

Запустите git blame в файле. Он покажет вам идентификатор фиксации, дату и время и кто их совершил - для каждой строки. Затем просто скопируйте идентификатор фиксации, и вы можете использовать его в git log <commit> или git show <commit>.

Например, у меня есть файл, называемый test.txt, с строками, добавленными в разные коммиты:

$ cat test.txt
First line.
Second line.

Запуск git blame:

$ git blame test.txt
^410c3dd (Leigh 2013-11-09 12:00:00 1) First line.
2365eb7d (Leigh 2013-11-09 12:00:10 2) Second line.

Первый бит - это идентификатор фиксации, затем имя, дата, время, часовой пояс и, наконец, номер строки и содержимое строки.

Ответ 2

git log -S searchTerm

дает коммиты, в которых был введен поисковый запрос.

Ответ 3

Есть что-то более быстрое, чем выдача вины за полный файл. Если строка ${lineno} и файл ${filename}, вы можете:

git blame -L ${lineno},${lineno} ${filename}

Пример:

git blame -L 2,2 test.txt

Ответ 4

git log -S "mention here line of code" [file-path]    

Например:

git log -S "First line" test.txt         

Предоставление имени файла с его путем очевидно, потому что, в большинстве случаев, мы хотим знать, кто ввел определенный сегмент кода в конкретный файл.