1

を使用して複製する(または少なくとも、複製するように指示された)リポジトリがあります

git clone git://therepository --recursive

リポジトリにはサブモジュールがあります。私がやりたいことは、特定の日付のリポジトリからファイルを取得することです。私はそれをしようとします:

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

しかし、それはサブモジュールには何もしていないようです。

サブモジュールに影響を与えるために私がどのようにすべきかを誰かが提案できますか? (実際にはリポジトリの完全なクローンは必要ないので、サブモジュールを介して特定のリビジョンを再帰的にフェッチする方法があればそれも問題ありません)。

追加

チェックアウトに -b スイッチを追加すると、次を実行できます。

git submodule sync
git submodule update

エラーは発生しませんが、サブモジュールにはまだ HEAD バージョンのファイルが含まれているようです。

4

2 に答える 2

1

ここの小さなスクリプト: http://cemerick.com/2009/09/28/working-with-git-submodules-recursively/

各サブモジュール (および各サブモジュールのサブモジュール、無限) でチェックアウトを再帰的に呼び出す別の方法を教えてください。 、おそらく同じ機能を探している他の人にも役立つでしょう。

チェックアウトの呼び出しで HEAD のマスターを変更する必要があったことに注意してください。これは推測にすぎないため、チェックアウトしているファイルのリビジョンにまだ問題があったのかもしれません。

これが一見難しく、めったに行われないことに驚いています(Google経由で行う方法についての参照が見つかりません)。モジュールとサブモジュールの特定の日付またはタグからファイルを取得することは、コードの古いビルドなどをデバッグするために、人々がかなり定期的に行うことだと思っていたでしょう。

于 2012-04-16T05:59:33.673 に答える
0

git submodule updateチェックアウト/クローンの後に実行しましたか?

于 2012-04-15T05:20:14.103 に答える