2011-01-16 10 views
71

Wiem, że za pomocą GitHub mogę przeszukiwać wszystkie aktualne wersje moich plików w repozytorium. Chciałbym jednak przeszukać starsze wersje moich plików repo. Na przykład, powiedzmy, miałem kiedyś funkcję o nazwie get_info() w moim kodzie, ale usunąłem ją kilka wersji temu, czy możliwe jest wyszukanie get_info i znalezienie kodu. Jeśli nie jest to możliwe przy użyciu GitHub, czy jest to możliwe z linii poleceń git?GitHub: przeszukiwanie starszych wersji plików

EDIT

Dzięki @Mark Longair za pokazanie w jaki sposób można to zrobić z wiersza polecenia git. Jeśli nie jest to możliwe w GitHub, byłoby to wielką zaletą.

Odpowiedz

80

Obecnie nie sądzę, że można przeszukiwać pełną historię kodu repozytorium na stronie github - najbliższe jest po prostu wyszukiwanie w bieżącym kodzie repozytorium za pomocą opcji "wyszukiwania kodu" na this page.

Jednak z poziomu wiersza poleceń można znaleźć wszelkie zatwierdzenia, które wprowadziły lub usunęły wiersze o numerze get_info z opcją -S na git log. np:

git log -Sget_info -p 

(nb nie powinno być spacji między -S a termin wyszukiwania)

(również uwaga: aby szukać więcej niż jedno słowo, surround w '):

git log -S'get info' -p 

Tak więc, przynajmniej powinno znaleźć zatwierdzenie, w którym funkcja została po raz pierwszy wprowadzona i ta, która ją usunęła. Dodałem -p, dzięki czemu można również zobaczyć poprawki - jeśli wiele zmian wprowadziło zmiany, które wspomniały o funkcji, która może być pomocna. Jeśli funkcja była tylko w innym oddziale, może być użyteczne użycie --all do przeszukiwania wszystkich gałęzi.

Jefromi zwraca uwagę w komentarzu pod tym git 1.7.4 wprowadzi opcję -G jako alternatywę - zmiana ta jest przedstawiona w ostatnim poście z Junio ​​Hamano (git opiekunach): http://gitster.livejournal.com/48191.html

+2

Tak, wiem Mogę wyszukiwać komentarze, ale co z wyszukiwaniem kodu? – normski

+4

Opcja -S * nie * wygląda w kodzie - znajduje wszystkie zatwierdzenia, w których '' get_info' zawiera się w definicji wprowadzonej przez zatwierdzenie. Możesz się mylić z opcją '--grep', która przeszukuje komunikaty dziennika. –

+1

Ach tak, przepraszam za to. Dzięki, wygląda dobrze. – normski

Powiązane problemy