So reduzieren Sie die Größe eines Repos auf Github

8

Ich habe versehentlich einige große Test-WAV-Dateien in mein Repository geschrieben und sie verbrauchen viel Speicherplatz auf meinem Github-Account. Wie kann ich diese Dateien aus dem Verlauf entfernen?

Hinweis: Diese Dateien wurden vor einiger Zeit übergeben und befinden sich nicht im HEAD-Commit.

    
Corban Brook 20.10.2009, 19:06
quelle

2 Antworten

11

Es gibt keine Möglichkeit, sie zu entfernen, ohne den Verlauf zu ändern. Wenn also jemand die Änderungen übernommen hat, müssen Sie möglicherweise mit diesem Chaos fertig werden - siehe Wiederherstellung von Upstream Rebase in man git-rebase . Das kann ziemlich schlecht sein, abhängig von Ihrem Workflow - auf die eine oder andere Weise müssen Sie wahrscheinlich jedem bewusst machen, dass sie zum "neuen" Master-Zweig wechseln müssen, wobei alle laufenden Arbeiten obendrein neu erstellt werden müssen.

>

Wenn das Commit noch auf der Spitze wäre, könntest du auf das Commit vor ihm zurückstellen:

%Vor%

oder ändern Sie es:

%Vor%

Aber da es nicht mehr am Tipp ist, ist es wahrscheinlich am besten, es mit einer interaktiven Rebase zu tun:

%Vor%

Ändern Sie "pick" auf "bearbeiten" auf der Festschreibung, die Sie beheben möchten, dann haben Sie es! (oder entfernen Sie sogar das gesamte Commit, wenn das in Ordnung ist) *

Nachdem Sie die Auswahl getroffen haben, müssen Sie den Druck erzwingen, da es sich nicht mehr um einen Schnellvorlauf handelt:

%Vor%

* Wenn Sie nachträglich Änderungen an diesen Dateien vorgenommen haben, erhalten Sie Probleme, wenn Sie in der Rebase fortfahren. Sie sollten einfach zu handhaben sein, da Sie nur die Dateien weg haben wollen. Natürlich, wenn es seither 100 Commits gegeben hat, die alle Konflikte verursachen, könntest du git-filter-branch sehen. Das relevante Beispiel aus der man-Seite ist:

%Vor%

    
Cascabel 20.10.2009, 19:17
quelle
2
  1. Entferne es aus deinem lokalen Verlauf in dem Zweig, in dem du es festgelegt hast. Eine Möglichkeit, dies zu tun, ist git commit --amend zu verwenden, wenn es Ihr HEAD-Commit ist; ein anderer ist git rebase --interactive .
  2. Erzwinge den aktualisierten Zweig auf github.

    %Vor%

    (wobei github der Name Ihrer Fernbedienung für GitHub ist).

Dadurch wird es aus dem aktiven Verlauf entfernt. Um den Speicherplatz tatsächlich zurückzugewinnen, muss GitHub eine Speicherbereinigung durchführen. Ich bin mir nicht sicher, wie ich das explizit machen könnte, wenn sie es nicht automatisch machen. Möglicherweise müssen Sie eine Supportanfrage einreichen.

    
Emil Sit 20.10.2009 19:15
quelle

Tags und Links