2012-11-01 5 views
8

Ich habe zwei große Dateien zu meinem Repository (150MB) hinzugefügt und jetzt Git hängt immer bei 54%. Ich überprüfte das Netzwerk mit Ping, versuchte es mit einem anderen, ich habe einen Git fsck usw. Nichts hilft.Howto debuggen: Git Pull hängt während Git Pull (immer bei 54%)

  • Wie kann ich dies debuggen?

  • Gibt es eine Möglichkeit, nur eine der großen Dateien gleichzeitig zu holen? Das Problem ist, dass mein lokaler git weiß nicht, von den letzten Commit = -. (

+0

Könnte die Verwendung von ['git-annex'] (http://git-annex.branchable.com/) in Betracht gezogen werden, um große Dateien effizient zu verwalten. Weitere Informationen finden Sie unter http://stackoverflow.com/a/6635160/429758. –

+0

Danke dafür! Ich werde definitiv dafür gehen. Aber auch nach dem Entfernen der beiden Dateien aus dem Remote-Repository kann ich nicht ziehen. Die Anzahl der Objekte ist jetzt größer. Nichtsdestoweniger git freezes –

+0

Sie könnten versuchen, Speichergröße Grenzen in Ihrer git-config zu ändern (pack.packSizeLimit core.packedGitLimit für Beispiel) – Zermingore

Antwort

0

Ich denke, das Problem, das Sie haben, ist Ihre Klon bricht jedes Mal in der Mitte weg

Also, statt ein Repo immer wieder von Grund auf neu jedes Mal klonen, würde ich auf einem frisch erstellten Repo ein Sie stattdessen tun holen vorschlagen.

Grundsätzlich ein leeres Repository

cd repo_name && git init 

hinzufügen initialisieren th e ursprüngliche Repo als Remote in diesem Repo

git remote add origin url/to/repo 

Und jetzt tut ein git fetch.

Auf diese Weise wird fetch, selbst wenn Ihr Klon in der Mitte bricht, darauf achten, nicht entfernte Objekte nur im nächsten Lauf einzubinden.

1

Aber auch nach dem Entfernen der beiden Dateien aus dem Remote-Repository kann ich nicht ziehen.

Welche Mittel haben Sie verwendet, um "die zwei Dateien zu entfernen"?

Sie müssten sie aus allen Commits im Verlauf Ihres Repository entfernen.

Um dies zu tun, siehe zum Beispiel: How to remove/delete a large file from commit history in Git repository?


Um zu überprüfen, ob Ihre git pull wirklich oder nur sehr langsam ins Stocken geraten ist: überprüfen Sie den Netzwerkverkehr zwischen Ihrem compouter und dem Server, der dem zentralen Repo hostet.


Wenn Sie einen anderen Weg, um die 2 große Dateien erhalten (zB: kopieren Sie sie in Ihr lokales Repository von einem USB-Stick ...) Sie können git add laufen (do git commit nicht ausgeführt) auf diese Dateien von Ihrem lokales Repository und dann git reset ., um sie zu deaktivieren.

Dies sollte diese Dateien in der Liste der bekannten Objekte in Ihrem lokalen Repo hinzufügen, und git pull sollte sie nicht erneut herunterladen müssen.

0

Erhöhen Sie die Git-Puffergröße:

git config---global http.postBuffer 157286400

Die Größe sollte auf ein Minimum eingestellt werden, die das Problem löst.