Как узнать, в какой коммит был добавлен тот или иной код?
Я хочу узнать, в какой фиксации я добавил код, приведенный ниже:
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
Предоставление имени файла с его путем очевидно, потому что, в большинстве случаев, мы хотим знать, кто ввел определенный сегмент кода в конкретный файл.