Нахождение функции в репозитории git - PullRequest
1 голос
/ 25 марта 2020

Я новичок в ноутбуках Github и Jupyter.
Я хочу найти указанную c функцию в репозитории git, как мне это сделать?
Я узнал, что могу использовать Git grep, но я не знаю команду.
Кроме того, могу ли я использовать ноутбук Jupyter для этого или мне нужно использовать терминал?

1 Ответ

1 голос
/ 25 марта 2020

Я не знаю о Jupyter Notebook , но пользуюсь терминалом. Убедитесь, что вы уже git clone d хранилище и находитесь в его каталоге в терминале. Затем выполните git grep из терминала.

Поиск текста в файлах:

1. С git grep (вы должны находиться внутри репо git):

Поиск с учетом регистра. -n показывает номер строки, где также найден результат.

git grep -n "my regular expression search string"

Поиск без учета регистра (добавьте -i здесь):

git grep -ni "my case insensitive regular expression search string"

Найти использование функции (слева) скобки ниже необязательны)

git grep -n "myFunc("

Grep выполняет поиск по регулярному выражению. Google это для деталей. Регулярные выражения - очень мощный способ очень точного c сопоставления строк. Когда вы изучите основы, попробуйте проверить и проверить свои регулярные выражения (регулярные выражения) с помощью этого инструмента здесь: https://regex101.com/.

2. При обычном grep (работает где угодно, но работает примерно в 100 раз медленнее, чем git grep):

То же, что и выше, за исключением добавления -r для 'r'ecursive (для поиска в каталогах). Если вы также хотите переходить по символическим c ссылкам, используйте -R вместо -r.

Примеры:

Поиск с учетом регистра. -n показывает номер строки, где также найден результат.

grep -rn "my regular expression search string"

Поиск без учета регистра (добавьте -i здесь):

grep -rni "my case insensitive regular expression search string"

Найти использование функции (слева) Скобки ниже необязательны)

grep -rn "myFunc("

Найти функцию (следующие символы c ссылки: добавить -R):

grep -Rn "myFunc("

Бонус: найти файл по имени :

Просто направьте выход find в качестве ввода в grep с оператором трубы (|):

find | grep -ni "my_file_name"

Или используйте -L с find по символическим c ссылкам:

find -L | grep -ni "my_file_name"

Обратите внимание, что -i выше для поиска имени файла без учета регистра. Удалите его, чтобы соответствовать случаю.

Список литературы:

  1. Случайный опыт, поиск в Google и общение с людьми на протяжении многих лет
  2. Прочитайте страницы руководства (руководства) :
    1. man git grep
    2. man grep
    3. man find
  3. https://regex101.com/

Похожие:

  1. GitHub: Как выполнить поиск кода в хранилище с учетом регистра?
...