2

我有一个 git 存储库的克隆,我使用它来让原子化收集周期指标(KLOC 等)

我每周收集一次这些指标,但偶尔我想回到过去并重新运行指标(如果我添加了新指标,或者系统中的其他内容发生了变化)。

要签出特定时间点,我使用以下命令:

git checkout `git rev-list -n 1 --before=2012-8-20 master` --force

但我发现 rev-list 命令没有保持最新状态。在我开始使用此过程的日期之后发生的新修订不会出现在 rev-list 命令中。如果我从头开始克隆,我会看到额外的修订,但我不希望每次都克隆整个存储库。

我在 rev-list 上是否缺少一个选项来让它知道 master 分支的所有最新版本?

4

1 回答 1

1

我认为这里的交易是 revlist 不会相对于远程主机自动更新。因此,我需要添加以下命令:

git checkout master # to go back onto the master branch
git pull            # to update from the master

现在 rev 列表将是最新的,我可以准确地运行:

git checkout `git rev-list -n 1 --before=2012-8-20 master` --force

现在上面的命令可以作为时间机器正常工作,所以我可以计算我的代码指标。

于 2012-08-21T21:33:03.233 回答