2012-04-15 5 views
1

Ich habe ein Repository ich klonen (oder zumindest, ich bin zu klonen gesagt)Wie Kasse ich eine bestimmte Revision von einem Repository und seine Submodule

git clone git://therepository --recursive 

Das Repository hat Submodule in der Benutzung. Ich möchte die Dateien aus dem Repository für ein bestimmtes Datum abrufen. Ich versuche, das zu tun mit:

git checkout `git rev-list -n 1 --before="2011-12-10 13:37" master` 

Aber das scheint nichts zu den Submodulen zu tun.

Kann jemand vorschlagen, wie ich es tun sollte, um die Submodule zu bewirken? (Ich brauche eigentlich keinen kompletten Klon des Repositorys, also, wenn es eine Möglichkeit gibt, rekursiv eine bestimmte Revision durch die Submodule zu holen, wäre das auch in Ordnung).

Zusätzliche

Wenn ich den Schalter -b an der Kasse hinzufügen, kann ich dann laufen:

git submodule sync 
git submodule update 

ohne Fehler zu bekommen, aber die Submodule scheinen immer noch die HEAD-Version enthalten ihre Dateien.

Antwort

1

Das kleine Skript hier: http://cemerick.com/2009/09/28/working-with-git-submodules-recursively/

Gab mir ein alternatives Verfahren rekursiv auf jeder Submodul Kasse aufrufen (und jedes Submodul der Submodule, ad infinitum), dauerte es nicht für mich arbeiten (schien die falsche zu greifen Revision einiger Dateien), aber das könnte ein Problem für mich selbst sein, also vielleicht funktioniert es für andere, die nach der gleichen Funktionalität suchen.

Bitte beachten Sie, ich musste Master für HEAD im Call to Checkout ändern, es ist nur eine Vermutung, also vielleicht ist es auch, warum ich immer noch Probleme mit welchen Revisionen von Dateien hatte es auschecken.

Ich bin überrascht, dass dies scheinbar sowohl hart als auch selten ist (Ich kann keinen Hinweis finden, wie man es über Google macht). Ich hätte gedacht, eine Datei von einem bestimmten Datum oder Tag zu bekommen, für ein Modul und Submodule wäre etwas gewesen, was Leute ziemlich regelmäßig getan haben, um alte Builds von Code e.t.c.

0

Haben Sie nach dem Checkout/Klon git submodule update ausgeführt?

+0

Wenn ich das tue, bekomme ich eine Mischung aus: '', 'fatal: Referenz ist kein Baum ' und 'Bitte bestätigen Sie Ihre Änderungen oder verberge sie, bevor Sie die Filialen wechseln können'. – pjcard

Verwandte Themen