Wie man auf Github sucht, um genaue Übereinstimmungen zu erhalten (wie die Zitate für Google)

216

Ich kann genaue Übereinstimmungen von Google mit Anführungszeichen wie suchen "system <<-". Wie mache ich das gleiche für Github? Ich kann es nicht zum Laufen bringen.

Nur ein Lernender
quelle

Antworten:

128

Das kannst du nicht. Die offiziellen GitHub- Suchregeln :

Aufgrund der Komplexität der Suche nach Code gibt es einige Einschränkungen bei der Durchführung von Suchvorgängen:

  • Es wird nur der Standardzweig berücksichtigt. In den meisten Fällen wird dies der sein Master - Zweig.
  • Es können nur Dateien durchsucht werden, die kleiner als 384 KB sind.
  • Sie müssen bei der Suche nach Quellcode immer mindestens einen Suchbegriff angeben. Beispielsweise ist die Suche nach language:gonicht gültig, solange dies der Fall amazing language:goist.
  • In den Suchergebnissen können höchstens zwei Fragmente aus derselben Datei angezeigt werden. Die Datei enthält jedoch möglicherweise mehr Ergebnisse.
  • Sie können die folgenden Platzhalterzeichen nicht als Teil Ihrer Suchabfrage verwenden : Bei
    . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
    der Suche werden diese Symbole einfach ignoriert.

Problemumgehung:

Wenn Sie in einem einzelnen Repository suchen müssen, können Sie es lokal klonen und verwenden grep, um die Zeichenfolge genau zu finden:

grep -r "system <<-" /repository_dir
DenisKolodin
quelle
351
Das ist fürchterlich. Warum reparieren sie es nicht? Idealerweise sollte ich in der Lage sein, mit einem regulären Ausdruck zu suchen. Wohin gehe ich, um dagegen zu protestieren? :)
Daniel Darabos
10
Ich habe einen Support gefragt und sie antworteten: "Die Möglichkeit, Sonderzeichen in der GitHub-Suche zu umgehen, ist eine häufig nachgefragte Funktion. Obwohl ich keine Versprechungen machen kann, werde ich die Idee auf unserer internen Liste der Funktionsanfragen +1 geben." . Ich denke, es hängt von der Indexgröße ab: Zu viele Code-Githubs enthalten.
DenisKolodin
10
Ich glaube, dies ist eine Herausforderung bei der Indexierung. Die wörtliche Suche in doppelten Anführungszeichen zum Funktionieren zu bringen, ist wahrscheinlich eine Größenordnung schwieriger als die derzeitige Implementierung. Es ist wahrscheinlich, dass eine Regex-Suche> 1 Größenordnung schwieriger ist oder sogar um Probleme bittet .
Matt Kocaj
14
Was ist mit wörtlichen Zeichenfolgen, die Punkte enthalten ... wie ldap.mycomp.com?!?!?! Ich brauche keinen regulären Ausdruck, ich möchte nur eine LITERALE Zeichenfolgensuche
Jason
1
Dies ist nicht behoben, da sie Elasticsearch verwenden. Daher sollten sie alle Daten mit einem neuen Feld neu indizieren, um dies zu berücksichtigen. Dies bedeutet viel Festplatte.
Thomas Decaux
44

Sie können Google direkt verwenden.

Wie wäre es damit?

"your_string_to_search" site::https://github.com
"your_string_to_search" site::https://gist.github.com
mrgloom
quelle
81
Geht das nicht davon aus, dass Google Zugriff auf Ihr Repo hat? Dies sollte bei privaten Repos nicht der Fall sein.
Joel B
1
Es funktioniert in Repos, wie:"alias agi=" site::https://github.com/robbyrussell/oh-my-zsh
Websites
1
@juanpastas können Sie ein vollständiges Beispiel für eine Suchzeichenfolge geben?
Mrgloom
15
Dies war damals sinnvoller, als Google die Zitate noch einhielt, um eine genaue Suche zu erzwingen.
Kylotan
1
@FullMetalFist Sieht aus wie zum Beispiel ja"your_string_to_search" site:https://github.com filetype:cpp
mrgloom
17

Heute habe ich versucht, nach einer genauen Übereinstimmung der filter classDateien zu suchen, die logback.xmlin einem Repo auf Github genannt werden. Und ich kam mit der folgenden Abfrage, die den Job erledigte.

"filter class" in:file filename:logback.xml

Um genaue Übereinstimmungen mit Anführungszeichen zu aktivieren, müssen Sie Ihre Suche mit dem Modifikator "in: file" verfolgen. Die Übereinstimmungen sind nicht ganz genau, das Wort "Klasse" muss dem Wort "Filter" folgen, aber es scheint, dass zwischen den beiden Wörtern 0 oder mehr Leerzeichen oder Symbolzeichen stehen können.

Beendigung der Zeit
quelle
14
Ich sehe keinen Unterschied im Verhalten bei der Suche mit oder ohne in:file.
Daniel Darabos
2
Ich auch nicht, aber die Tatsache, dass "foo bar" in Anführungszeichen nach benachbarten Wörtern sucht, ist eine sehr nützliche Nachricht für mich
Beni Cherniavsky-Paskin
3

Wenn Sie zur Antwort von @ mrgloom hinzufügen und in Google nach Code in einer bestimmten Programmiersprache in Github suchen, können Sie in der Google-Suchleiste Folgendes tun:

  • Geben Sie die gesuchte Zeichenfolge mit dem Suchoperator "intext:" an
  • Fügen Sie die gewünschte Programmiersprache mit dem Operator "ext:" hinzu (dh "ext: py", "ext: R", "ext: rb" usw.).
  • Suche in allen öffentlichen Repos in Github mit dem erwähnten Operator "site:" mrgloom.

Beispiel:

intext:"%% 2 == 0" ext:R site:github.com

Google Ergebnisse aus dem Beispiel

silviaegt
quelle
1
intext:".set(" ext:JS site:github.comhat nicht funktioniert: /
Aditya MP
Du hast recht! Ich verstehe nicht warum ... Ich habe es versucht intext:"set(" inurl:.js site:github.comund es funktioniert irgendwie, aber nicht wirklich
silviaegt
1
Also habe ich weiter gelesen und anscheinend werden Klammern bei der Google-Suche ignoriert. Ich verstehe jedoch nicht, warum der Operator "ext" nicht funktioniert. Nach dieser ist es ein nicht dokumentiertes alias für „Dateityp“, aber nicht sicher , warum „js“ nicht als einer angesehen würde
silviaegt