2013-03-07 4 views
20

Die folgende Situation ergibt sich, von Zeit zu Zeit ...Hat GitHub garbage dangling commits, auf die in Pull-Requests verwiesen wird?

ich git checkout -b experiment, verpflichten einige experimentelle Änderungen, und öffnen Sie eine Pull-Anforderung. Nach einer Diskussion wird die Pull-Anforderung zurückgewiesen.

Wenn ich nun den Remote-Zweig zu löschen, würde dies die diff unzugänglich an einem gewissen Punkt machen, oder hat GitHub sicherzustellen, dass verpflichtet, die in Pull-Anforderungen erscheinen, ist nicht Müll gesammelt, auch wenn sie erscheinen nicht auf jedem Ast?

Ich möchte tote Zweige löschen, aber nur, wenn dies den historischen Wert der abgelehnten Pull-Anfragen nicht verringert.

Antwort

21

Nein, sie sind keine GCs, weil sie nicht vollständig referenziert sind, selbst wenn Sie Ihre Zweigstelle löschen.

Github erstellt eine Verzweigung (eigentlich zwei) für jede Pull-Anforderung. Sie befinden sich in einem nicht standardmäßigen Namespace, sodass Sie sie normalerweise nicht erhalten, wenn Sie aus dem Repo ziehen (oder holen).

zu sehen, wie dies in der Praxis aussieht, tun ein git ls-remote <REMOTE>, wo <REMOTE> entweder der Name eines Remote ist (wenn es eine Ihrer Repo weiß) oder die URL (es muss nicht git remote add ed für diese Arbeit sein). Diese Fernbedienung sollte einige Pull-Anforderungen haben, sonst können Sie nicht sehen, was ich meine.

Dies wird alle refs auf der Fernbedienung (alle Zweige und Tags) auflisten, und Sie werden einige Referenzen wie refs/pull/<number>/head und refs/pull/<number>/merge sehen. Diese beziehen sich auf das letzte Commit in der PR und das Commit, bei dem es zusammengeführt wurde.

Verwandte Themen