如何列出添加到git中的repo的最后n个补丁?

时间:2014-03-27 14:45:58

标签: git

我的代码中有一个回调,用于刷新我的3d webgl场景。我已经在我的代码中的各个地方插入了它。我的cpu使用率是>我的最新提交后100%,即使我的webgl场景id闲置。如何捕获我已添加到我的仓库中的最后n个补丁列表。我想通过这个列表来查找我添加的所有新回调。

2 个答案:

答案 0 :(得分:0)

git show HEAD~10..HEAD

显然,您可以将其输入grep或您需要的任何内容:

git show HEAD~10..HEAD | grep MyCallback

答案 1 :(得分:0)

你曾经使用过git bisect吗?

它可能有助于您找到导致错误的特定补丁。

http://git-scm.com/book/en/Git-Tools-Debugging-with-Git#Binary-Search

它在您当前的错误提交和过去已知的良好提交之间进行二进制搜索。

您启动它,将当前提交标记为错误,然后指示已知良好提交的提交ID。

$ git bisect start
$ git bisect bad
$ git bisect good <commit-id/branch name/tag>
然后,Git将在两次提交之间找到一个中间点并检查该代码,您可以手动运行测试并指出此特定提交是好还是坏。

如果好:

$ git bisect good

如果不好:

$ git bisect bad

Git会继续向您提交提交,直到将其缩小到可能的提交状态,并向您显示提交ID和已更改文件列表。

完成后,回到初始状态:

$ git bisect reset

如果您在每次结账时执行的测试都可以自动执行,您可以将其传递给bisect以自动运行bisect。

$ git bisect start <BAD commit id> <GOOD commit id>
$ git bisect run <script OR command with 0 exit if good>

示例:

$ git bisect start HEAD v1.0
$ git bisect run test-error.sh
OR
$ git bisect run make test