477 Stimmen

Wie man auf GitHub nach exakten Zeichenfolgen sucht, einschließlich Sonderzeichen.

Ich kann exakte Übereinstimmungen von Google finden, indem ich Anführungszeichen wie "System <<-" verwende.

Wie kann ich dasselbe für GitHub tun?

255voto

DenisKolodin Punkte 10678

Du konntest es nicht (vor 2022). Die offiziellen GitHub Suchregeln:

Aufgrund der Komplexität der Codesuche gibt es einige Einschränkungen für die Durchführung von Suchvorgängen:

  • Nur der Standardzweig wird berücksichtigt. In den meisten Fällen wird dies der master-Zweig sein.
  • Nur Dateien kleiner als 384 KB sind durchsuchbar.
  • Nur Repositories mit weniger als 500.000 Dateien sind durchsuchbar.
  • Sie müssen immer mindestens einen Suchbegriff angeben, wenn Sie nach dem Quellcode suchen. Zum Beispiel ist die Suche nach language:go ungültig, während amazing language:go gültig ist.
  • In den Suchergebnissen können höchstens zwei Fragmente aus derselben Datei angezeigt werden, es können jedoch mehr Ergebnisse innerhalb der Datei vorhanden sein.
  • Sie können die folgenden Platzhalterzeichen nicht als Teil Ihrer Suchanfrage verwenden:
    . , : ; / \ ` ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]
    Die Suche wird diese Symbole einfach ignorieren.

Aktualisierung: GitHub unterstützt jetzt wörtliche Zeichenfolgen, aber Sie können auch einige leistungsfähigere Möglichkeiten ausprobieren.


Versuchen Sie es mit Sourcegraph

Für komplexe Suche mit Regex-Unterstützung versuchen Sie Sourcegraph.

Bildbeschreibung hier eingeben


Klonen und Verwendung von git-grep:

git unterstützt die Suche in Quellen mit dem git-grep-Befehl. Klonen Sie einfach ein Repository und verwenden Sie den Befehl im Ordner:

git grep "Text-zur-Suche"

Alternativen:

Ich empfehle Ihnen, das ripgrep-Tool auszuprobieren, es ist schnell und einfach. Funktioniert wie git-grep, sieht jedoch ansprechender aus:

rg "Text-zur-Suche"

Sie können auch das Standard-grep verwenden, um nach beliebigem Text in Dateien zu suchen:

grep -r "Text-zur-Suche" /repository

68voto

mrgloom Punkte 17288

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

33voto

cessationoftime Punkte 842

Heute habe ich versucht, nach einer exakten Übereinstimmung von Filterklasse in Dateien mit dem Namen logback.xml in jedem Repo auf Github zu suchen. Und ich kam mit der folgenden Abfrage, die den Job erledigt hat.

"Filterklasse" in:file filename:logback.xml

Um exakte Übereinstimmungen mit Anführungszeichen zu ermöglichen, müssen Sie Ihre Suche mit dem "in:file" Modifier abschließen. Die Übereinstimmungen sind nicht ganz exakt, das Wort "Klasse" muss dem Wort "Filter" folgen, aber anscheinend können zwischen den beiden Wörtern 0 oder mehr Leerzeichen oder Sonderzeichen stehen.

25voto

Draex_ Punkte 2597
  1. Öffnen Sie ein Repository auf GitHub, zum Beispiel microsoft/fluentui
  2. Drücken Sie Punkt "." um die VS Code-Webanwendung zu öffnen
  3. Gehen Sie links zum Suchfeld
  4. Aktivieren Sie die Indizierung über die Aufforderung unterhalb der Suchleiste
  5. Huraaay! Die exakte Suche funktioniert

UPDATE: Ab November 2022 funktioniert die oben genannte Lösung nur, wenn Sie bei GitHub angemeldet sind.

Sie können die Vorschau der neuen Sucherfahrung über diesen Link aktivieren: https://github.com/features/code-search-code-view/signup.

Führen Sie dann eine exakte Übereinstimmung durch, indem Sie Anführungszeichen verwenden: "system <<-"

17voto

VonC Punkte 1117238

Du kannst: Seit Dez. 2021 kann deine Suche, durchgeführt von cs.github.com, Sonderzeichen enthalten

Verbesserung der GitHub-Suchfunktion

(von Pavel Avgustinov)

Suche nach einem exakten String, mit Unterstützung für Teilzeichenketten und Sonderzeichen, oder verwende reguläre Ausdrücke (eingeschlossen in / Trennzeichen).

Also sollte "system <<-" funktionieren, auf dieser neuen Suchseite.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X