2016-04-06 18 views
1

Ich wurde ein Repo geklont, und seine Größe erhöht sich Tag für Tag. Ich möchte also alte Commits entfernen und nur das letzte Commit beibehalten, so wie ich es mit --depth 1 re-kloniere. Und ich will es nicht erneut klonen, gibt es eine Möglichkeit, das lokale Repo in ein flaches zu konvertieren und git pull zu arbeiten?Konvertieren git vollständigen Klon zu flachen Klon

+2

, warum Sie nicht nur lokal klonen, aber Sie wollen das heißt 'cd/tmp /; Gitklon /my/fat/repo/.git - Tiefe 1; '- und dann verschieben/umbenennen/löschen Sie die Verzeichnisse, wie Sie es für richtig halten? – AD7six

+0

Sie müssen auch Remote richtig einrichten – max630

Antwort

-1

Von dem, was ich in der Frage verstehe, möchten Sie nur den aktuellen Status des Arbeitsverzeichnisses beibehalten und den Verlauf entfernen. Wenn dies der Fall ist, checken Sie die Filiale, die Sie behalten möchten. Entferne dann alle git-Informationen, die es gibt. Ich benutze diese Befehle im Allgemeinen aus dem Arbeitsverzeichnis:

finden. -type f | grep -i "\ .git" | xargs rm

cd ..

git init

cd

git --alle

git commit -m "commit_message"

Diese eine lokale Kopie erstellen möchte hinzufügen enthält nur das aktuelle Commit.

+0

Dies wird dazu führen, dass 'git push' und' git push' nicht funktionieren – Quanlong

+0

Sie müssen die Fernbedienung zu diesem hinzufügen. git remote hinzufügen . Und dann kannst du den Git Push machen –

0

Sie können eine lokale Kopie des Repositorys mit dem Parameter "depth 1" erstellen. Verwenden Sie den lokalen Ordner als Quelle für das Klonen.

Zum Beispiel:

git clone --depth 1 file://__absolute path__/localrepo localrepo.shallow