Pull-Anfragen sind ideal, um das größere Denken in Bezug auf eine Änderung oder eine Reihe von Änderungen an einem Repo zu verstehen. Das Lesen von Pull-Anforderungen ist eine großartige Möglichkeit, ein Projekt schnell zu "groken", da Sie anstelle kleiner atomarer Änderungen an der Quelle größere Gruppierungen logischer Änderungen erhalten. Analog zur Organisation der Zeilen in Ihrem Code in verwandten "Strophen", um das Lesen zu erleichtern.
Ich sehe mir eine Datei oder ein Commit an und frage mich, ob es eine Möglichkeit gibt, das Commit auf die Pull-Anforderung zurückzuverfolgen, die es ursprünglich erstellt hat. Diese Pull-Anforderung wäre schließlich zusammengeführt worden, aber mit einem Merge-Commit nicht erforderlich.
git
github
pull-request
DragonFax
quelle
quelle
Antworten:
Sie können einfach zu Github gehen und den SHA in die Suchleiste eingeben. Stellen Sie sicher, dass Sie den Link "Probleme" auf der linken Seite auswählen.AKTUALISIERT am 13. Juli 2017
Über die Github-Benutzeroberfläche gibt es jetzt eine wirklich einfache Möglichkeit, dies zu tun. Wenn Sie sich ein Commit in der Liste der Commits in einem Zweig der Benutzeroberfläche ansehen, klicken Sie auf den Link zum Commit selbst. Wenn für dieses Commit eine PR vorhanden ist und diese nicht direkt zur Filiale hinzugefügt wurde, befindet sich ein Link zur PR mit der PR-Nummer und der Filiale, in die sie gegangen ist, direkt unter der Commit-Nachricht oben auf der Seite.
Wenn Sie die Commit-SHA und nichts anderes haben und nicht danach suchen möchten, fügen Sie einfach
/commit/[commit SHA]
die Repo-URL hinzu, und Sie sehen die Commit-Seite mit dem PR-Link, falls vorhanden. Wenn der SHA beispielsweise 52797a7a3b087231e4e391e11ea861569205aaf4 lautet und das Repo https://github.com/glimmerjs/glimmer-vm lautet , gehen Sie zu https://github.com/glimmerjs/glimmer-vm/commit/52797a1aaaaaaaaaaaaaaquelle
e4077951
. Funktioniert das immer noch für Sie?master
) direkt in der Filiale vorgenommen ?Ändern Sie gegebenenfalls
origin
den Namen der Fernbedienung, die auf das Github-Repository verweist, an das die Pull-Anforderung gesendet worden wäre. Der erste Befehl muss für eine bestimmte Fernbedienung nur einmal ausgeführt werden, und der zweite Befehl wird im Allgemeinen ausgeführt, wenn andere Updates abgerufen werden.Dies führt dazu, dass git Informationen zu Pull-Anforderungen zusammen mit den tatsächlichen Zweigen erhält. Sie werden als Remote-Tracking-Zweige wie angezeigt
origin/pull/123
. Sobald das erledigt ist , können Sie verwenden ,git describe
mit dem--all
und--contains
Optionen , um den ersten Zweig zu zeigen , die den Commit verwiesen hat.Dies funktioniert jedoch nicht, wenn es sich bei dem gesuchten Commit tatsächlich um eine modifizierte Version des Commits aus der Pull-Anforderung handelt, z. B. wenn die Änderungen auf andere Arbeiten übertragen wurden oder die Person, die die Zusammenführung durchführt, beschlossen hat, einige Änderungen vorzunehmen.
quelle
pull/*/head
Commits ohne die Blobs abrufen zu lassen? Wie würde man danach "aufräumen" (die Ursprünge neu konfigurieren)?upstream
war in der Tat ein Fehler. Ich hatte das aus einem Repository kopiert, das diese Konfiguration hatte, in der die Fernbedienung benannt wurde,upstream
und dieses Vorkommen übersehen, als ich es so änderte, dass die häufigereorigin
als Name der Fernbedienung verwendet wurde. Ich habe die Antwort bearbeitet, um das zu beheben.refs/remotes/origin/pr/*
anstelle vonrefs/remotes/origin/pull/*
Seit dem 13. Oktober 2014 sollte dies unkompliziert sein:
Beispielsweise:
Sie können für die Datei sehen
hakimel/reveal.js/plugin/markdown/markdown.js
, mein Beitrag enthält jetzt einen Verweis auf die PR # 734, aus der er stammt.Dies ergibt sich aus dem Verknüpfen von zusammengeführten Pull-Anforderungen von Commits :
quelle
API
Ebene erhalten?Fügen Sie den Commit-Hash in das Feld Pull Request-Filter auf GitHub ein.
quelle
Ich hatte das gleiche Problem und schrieb den hier dokumentierten pr_for_sha-Bash-Helfer:
http://joey.aghion.com/find-the-github-pull-request-for-a-commit/
Nennen Sie es wie
pr_for_sha <COMMIT>
und es öffnet sich die entsprechende Github-Pull-Anforderungsseite in einem Browser.quelle
git log
Befehl kann nicht ausgeführt werden .git log --merges --ancestry-path --oneline 66100ab0..master
-fatal: ambiguous argument '66100ab0..master': unknown revision or path not in the working tree.
-git version 2.25.0