Gibt es eine Möglichkeit, im Code eines Github-Projekts nach etwas zu suchen?
Ich könnte die Quelle abrufen und lokal abrufen, aber ich habe mich gefragt, ob dies über das Webinterface oder eine Alternative eines Drittanbieters möglich ist.
Ideen?
Gibt es eine Möglichkeit, im Code eines Github-Projekts nach etwas zu suchen?
Ich könnte die Quelle abrufen und lokal abrufen, aber ich habe mich gefragt, ob dies über das Webinterface oder eine Alternative eines Drittanbieters möglich ist.
Ideen?
Antworten:
Update Januar 2013: Eine brandneue Suche ist da! , basierend auf elasticsearch.org :
Eine Suche nach stat innerhalb des Ruby Repo wird als ausgedrückt stat repo:ruby/ruby
und funktioniert jetzt nur noch mit TM .
(Der Repo-Name unterscheidet nicht zwischen Groß- und Kleinschreibung: test repo:wordpress/wordpress
Gibt dasselbe zurück wie test repo:Wordpress/Wordpress
)
Wird geben:
Und Sie haben viele andere Beispiele für die Suche, basierend auf Followern oder Gabeln oder ...
Update Juli 2012 (alte Zeiten der Lucene-Suche und der schlechten Code-Indizierung, kombiniert mit einer kaputten GUI, werden hier für das Archiv aufbewahrt):
Die Suche (basierend auf SolrQuerySyntax ) ist jetzt freizügiger und das gefürchtete " Invalid search query. Try quoting it.
" ist weg, wenn der Standardsuch- Selektor "Alles" verwendet wird :)
(Ich nehme an, wir können alle als Tim Pease , der in einem seiner Ziele "das Hacken auf verbesserte Sucherfahrungen für alle GitHub-Eigenschaften " hatte, und ich habe diese Frage zum Stapelüberlauf zu der Zeit erwähnt;))
Hier ist ein Beispiel für einen Grep im Ruby-Code: Er sucht nach Repos und Benutzern, aber auch nach dem, was ich zuerst suchen wollte: dem Code!
Erste Antwort und Illustration der früheren Ausgabe (Sept. 2012 => März 2012)
Sie können das GitHub-Formular für die erweiterte Suche verwenden :
Code
, Repositories
oder Users
aus der Drop-down undVerwenden Sie beispielsweise die repo:username/repo-name
Direktive, um die Suche auf ein Code- Repository zu beschränken.
Die erste " Advanced Search
" Seite enthält den Abschnitt:
Code Suche:
Die Codesuche durchsucht den gesamten Code, der öffentlich auf GitHub gehostet wird. Sie können auch filtern nach:
- die Sprache
language:
- den Repository-Namen (einschließlich des Benutzernamens)
repo:
- der Dateipfad
path:
Wenn Sie also die Code
Suchauswahl " " auswählen , funktioniert Ihre Abfrage, die nach einem Text in einem Repo sucht, wie folgt:
Was von GitHub unglaublich wenig hilfreich ist, ist Folgendes :
Code
treffen (hier " "), wird eine Fehlermeldung angezeigt: Invalid search query. Try quoting it.
" Die Fehlermeldung hilft Ihnen überhaupt nicht.
Keine Menge von " quoting it
" bringt Sie aus diesem Fehler heraus.
Sobald Sie diese Fehlermeldung erhalten, erhalten Sie nicht die Abschnitte, die Sie an die richtige Zuordnung zwischen den Suchwählern (" Repositories
", " Users
" oder " Language
") und den (rechten) Suchfiltern (hier " repo:
") erinnern .
Bei jedem weiteren Versuch werden diese Zuordnungen (Selektorfilter) nicht wieder angezeigt. Nur die oben angezeigte Fehlermeldung ...
Die einzige Möglichkeit, diese Arrays wiederherzustellen, besteht darin, auf das Advance Search
Symbol " " zu klicken :
Die " Everything
" Suchauswahl, die die Standardeinstellung ist, ist tatsächlich die falsche für alle Suchfilter! Außer " language:
" ...
(Sie könnten sich vorstellen / annehmen, dass " Everything
" Ihnen helfen würde repo:
, den Suchwähler auszuwählen, der tatsächlich mit dem Suchfilter funktioniert " ", aber nein. Das wäre zu einfach)
Sie können den gewünschten Suchwähler nicht Advance Search
allein über das Feld " " angeben !
(aber Sie können für " language:
", obwohl " Search Language
" ein weiteres Kombinationsfeld direkt unter dem " Search for
" Typ "ist ...)
Die Benutzererfahrung ist also normalerweise wie folgt:
Advanced Search
", werfen einen Blick auf diese Filterabschnitte und bemerken einen, den Sie verwenden möchten: " repo:
"repo:jruby/jruby stat
" durch, jedoch mit der Standard-Suchauswahl " Everything
" FAIL
! (und die Arrays mit der Zuordnung "Selectors-Filters" sind weg )Repositories
" ("Dah! Ich möchte in Repositories suchen ...") FAIL
!Users
") aus, ohne auf den Selektor zu schauen, nur um es noch einmal zu versuchen ... FAIL
!Um es noch einmal zusammenzufassen: Wenn Sie als OP Ben Humphreys nach etwas im Code eines Github-Projekts Code
suchen möchten, vergessen Sie nicht, die Suchauswahl auszuwählen.
repo:"jruby/jruby" stat
repo:"jruby" stat
jruby: stat
keine davon funktioniert
Aktuelle private Repositories verfügen über ein Suchfeld zum Durchsuchen dieses Repos.
Es ist jedoch verwirrend, dass diese Funktionalität öffentlichen Repositorys nicht zur Verfügung steht.
AKTUALISIEREN
Der unten stehende Lesezeichen-Hack ist aufgrund von XHR-Problemen und API-Änderungen fehlerhaft.
Zum Glück hat Github jetzt "A Whole New Code Search", das die Arbeit hervorragend macht.
Kasse dieses Voodoo: Github Code Search Userscript .
Befolgen Sie die Anweisungen dort, oder wenn Sie es hassen, Ihren Browser mit Skripten und Erweiterungen aufzublähen, verwenden Sie mein mit Lesezeichen versehenes Bundle des Benutzerskripts:
javascript:(function(){var s='https://github.com/skratchdot/github-code-search.user.js/raw/master/github-code-search.user.js',t='text/javascript',d=document,n=navigator,e;(e=d.createElement('script')).src=s;e.type=t;d.getElementsByTagName('head')[0].appendChild(e)})();doIt('');void('');
Speichern Sie die obige Quelle als URL eines neuen Lesezeichens. Wechseln Sie zu jedem Github Repo, klicken Sie auf das Lesezeichen und bam : in-Seite, ajaxified-Suche .
CAVEAT Github muss ein Repo indizieren, bevor Sie es durchsuchen können.
Abrakadabra...
Hier ist eine Beispielsuche aus dem mit Anmerkungen versehenen ECMAScript 5.1-Spezifikationsrepository:
Während die Antwort von @ VonC für einige Repositorys funktioniert, können Sie dies leider für viele Repositorys derzeit nicht. Github indiziert sie einfach nicht (wie ursprünglich von @emddudley kommentiert). Sie haben dies nirgendwo auf ihrer Website angegeben, aber sie werden es Ihnen sagen, wenn Sie um Unterstützung bitten:
Von: Tim Pease
Wir haben aufgehört, neu geposteten Code in unseren Codesuchindex aufzunehmen. Das Codevolumen ist aus unserem aktuellen Suchindex herausgewachsen, und wir arbeiten an einer skalierbareren Sucharchitektur. Es tut mir leid für den Ärger. Wir haben keine Schätzung, wann dieser neue Suchindex verfügbar sein wird, aber wenn er fertig ist, wird ein Blog-Beitrag veröffentlicht (https://github.com/blog).
Es ist ärgerlich, dass es keine andere Möglichkeit gibt, festzustellen, welche Repositorys nicht indiziert sind, als das Fehlen von Ergebnissen (die auch von einer schlechten Abfrage stammen könnten).
Es gibt auch keine andere Möglichkeit, dieses Problem zu verfolgen, als darauf zu warten, dass sie es bloggen (oder hier auf SO zu sehen).
Von: Tim Pease
Ich fürchte, unser Issue-Tracker ist intern, aber wir können Sie benachrichtigen, sobald der neue Suchindex aktiv ist.
Mit Google können Sie im Projekt suchen, nicht jedoch im Code :(
Ich suche den Quellcode in Github Repositories mit der kostenlosen Sourcegraph Chrome-Erweiterung ... Aber ich habe Chrome heruntergeladen. Zuerst wusste ich, dass andere Browser dies unterstützen, wie - und vielleicht nur - Firefox.
Ich habe die Chrome-Erweiterungsdokumente von SourceForge durchgesehen und mir dann genau angesehen, was ich für die Suche nach Verzeichnisnamen mit der Github-Suchmaschine selbst benötigte, indem ich einige der Codebase-Suchdokumente von Github gelesen habe