你能用git从未来的提交中签出一个文件吗?

时间:2014-08-12 18:03:10

标签: git

背景:我们刚刚在代码中发现了一个最近创建的错误(它并不总是存在)。我们没有自动化测试。我们刚刚创建了一个。我们之后还提交了一些更改,因此测试不在HEAD的{​​{1}}。

我想知道如果我回去,说30次提交,我能以某种方式将这个新创建的测试放到我的工作目录中吗?这样我可以运行master并进行自动测试运行,而不是为每次迭代手动检查它。我想我可以检查测试提交和git bisect以将文件放入我的工作目录而不在索引中,但我想知道是否有一种更简单的方法来添加测试之后

2 个答案:

答案 0 :(得分:4)

是。您可以使用git checkout <revision> -- path/to/file签出特定提交文件的版本。

答案 1 :(得分:0)

由于您只是寻找漏洞,您可以考虑简单地重写历史记录(在新分支中)以查找错误。

您可以git rebase -i <most recent working commit>,插入在工作提交后立即添加测试的提交,并让rebase将测试写入您的所有历史记录中。然后你可以安全地平分。

如果你想从未来检查测试结果&#34;&#34;确保在添加测试之前将二分法限制为,或git会抱怨添加测试文件。