Wenn ich ein Repository forke, werden alle Zweige des Upstream-Repositorys mitgeliefert. Manchmal gibt es eine überwältigende Anzahl von Upstream-Zweigen, obwohl ich mich eigentlich nur für die Zweige interessiere, an denen ich gerade arbeite. Es erscheint überflüssig, dieselben Zweige in zwei Repositories zu haben, wenn ich beide Remotes in meinem lokalen Repository einrichten kann.
Zum Beispiel:
Repository A hat die Zweige A1, ..., A1000. Wenn ich dieses Repository in GitHub verzweige, erhalte ich ein neues Repository B mit denselben Zweigen (A1, ..., A1000). Ich möchte, dass Repository B nur die Zweige enthält, an denen ich arbeite (z. B. B1 und B2).
Ist es möglich (und sogar ratsam), Upstream-Zweige aus meinem Fork zu entfernen, um die Dinge für mich und mein Team einfacher/übersichtlicher zu machen (d. h. die einzigen Zweige in unserem Fork sind Zweige, an denen wir arbeiten)? Benötige ich zumindest noch den Standardzweig aus dem Upstream-Repository?
Antwort1
Ist es möglich (und sogar ratsam), Upstream-Branches aus meinem Fork zu entfernen, um die Dinge für mich und mein Team einfacher/übersichtlicher zu machen (d. h., die einzigen Branches in unserem Fork sind Branches, an denen wir arbeiten)?
Es ist durchaus möglich, aber nicht unbedingt notwendig, Upstream-Zweige aus dem Fork zu entfernen. Wenn Sie git clone
das geforkte Repository verwenden, wird nur der Standardzweig geklont (es sei denn, Sie geben einen Zweignamen an, dann wird dieser geklont). Der Verlauf anderer Zweige wird nicht einmal lokal vorhanden sein, es sei denn, Sie geben git fetch
den gewünschten Zweig an oder git fetch --all
.
Mit anderen Worten: Ihr Workflow wird sich durch das Löschen dieser Upstream-Zweige nicht wesentlich verbessern. Der einzige Vorteil, den ich mir vorstellen kann, ist, dass es einfacher sein kann, einen interessanten Zweig zu finden, wenn weniger Zweige durchsucht werden müssen.
In jedem Fall lautet der Befehl zum Löschen eines Zweigs auf dem Remote-Computer (dadurch wird der entsprechende Zweig, falls vorhanden, nicht lokal gelöscht) git push origin :branchToBeDeleted
.
Das Löschen eines lokalen Zweigs (nur in Ihrem lokalen Repo, nicht im Remote-Fork) ist mit möglich git branch -d branchToBeDeleted
.
Weitere Informationen zum Löschen lokaler und Remote-Zweige hier.
Benötige ich zumindest noch den Standardzweig aus dem Upstream-Repository?
Kurz gesagt wäre es ratsam, den Standardzweig beizubehalten. Ich glaube nicht, dass git
Sie den Remote-Standardzweig mit der oben angegebenen Syntax löschen können (wie jemand hier versucht hat):
remote: error: refusing to delete the current branch: refs/heads/master
To [email protected]:<user>/<repo>.git
! [remote rejected] master (deletion of the current branch prohibited)
error: failed to push some refs to '[email protected]:<user>/<repo>.git'
Wenn Sie den Standardzweig nicht behalten möchten, gehen Sie in die Einstellungen für dieses Repository in GitHub oder der von Ihnen verwendeten Git-Hosting-Plattform und ändern Sie den Standardzweig, bevor Sie versuchen, den betreffenden Zweig zu löschen.