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/

给了我一种在每个子模块(以及每个子模块的子模块,无穷无尽)上递归调用 checkout 的替代方法,它对我不起作用(似乎抓住了某些文件的错误修订版),但这可能是我自己特有的问题,所以也许它适用于其他搜索相同功能的人。

请注意,我必须在结帐调用中更改 HEAD 的 master,这只是一个猜测,所以也许这也是为什么我仍然对它正在签出的文件的哪些修订存在问题的原因。

我很惊讶这似乎既困难又很少完成(找不到任何关于如何通过 Google 完成的参考)。我原以为从特定日期或标签获取文件,用于模块子模块将是人们经常做的事情,以调试旧的代码构建等

于 2012-04-16T05:59:33.673 回答
0

您是否git submodule update在结帐/克隆后运行?

于 2012-04-15T05:20:14.103 回答