Подтвердить что ты не робот

Git: найти удаленный код

Это меня раздражает.

Как найти удаленный код?

В итоге я нашел, где он был создан:

$ git log --pretty=oneline -S'some code'

И это достаточно хорошо, но мне также было любопытно найти, где он был удален, и до сих пор нет кубиков.

Во-первых, я пробовал git diff HEAD..HEAD^|grep 'some code', расширяя диапазон каждый раз, пока не нашел строки, в которых он был удален. Приятно, поэтому предположим, что я нашел его на диапазоне HEAD^^..HEAD^^^, затем git show HEAD^^^ и git show HEAD^^ с grep, но код нигде не найден!

Затем я немного прочитал git bisect, и, конечно же, он дает мне одну ревизию, в которой виновник должен быть... Опять же, git show rev|grep 'some code' появляется пустым...

Что? Что я делаю неправильно?

Спасибо!

4b9b3361

Ответ 1

Hmph, работает для меня:

$ git init
Initialized empty Git repository in /Users/pknotz/foo/.git/

$ echo "Hello" > a

$ git add a

$ git commit -am "initial commit"
[master (root-commit) 7e52a51] initial commit
 1 files changed, 1 insertions(+), 0 deletions(-)
 create mode 100644 a

$ echo " World" >> a

$ git commit -am "Be more specific"
[master 080e9fe] Be more specific
 1 files changed, 1 insertions(+), 0 deletions(-)

$ echo "Hello" > a

$ git commit -am "Be less specific"
[master 00f3fd0] Be less specific
 1 files changed, 0 insertions(+), 1 deletions(-)

$ cat a
Hello

$ git log -SWorld
commit 00f3fd0134d0d54aafbb9d959666efc5fd492b4f
Author: Pat Notz <[email protected]>
Date:   Tue Oct 6 17:20:48 2009 -0600

    Be less specific

commit 080e9fe84ff89aab9d9d51fb5d8d59e8f663ee7f
Author: Pat Notz <[email protected]>
Date:   Tue Oct 6 17:20:33 2009 -0600

    Be more specific

Или это не то, что вы имеете в виду?

Ответ 2

git log -S<string> выполняет задание, но если вам нужно выполнить более сложные поиски, вы можете использовать git log -G<regex>.

Из man:

-G<regex>

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

Ответ 3

Если ваш репозиторий находится на github.com, он имеет встроенную функцию для поиска. Он отвечает в мс и также выполняет поиск в удаленном коде.