2

动机

我正在做一个二等分并考虑保存它的状态,然后可能会继续它。目前尚不清楚是否git bisect log可以做到这一点。

发帖前先搜索

man git bisect说:

平分日志和平分重播

在将修订标记为好或坏后,发出以下命令以显示到目前为止所做的工作:

       $ git bisect log

如果您发现在指定修订状态时出错,可以将此命令的输出保存到文件中,对其进行编辑以删除不正确的条目,然后发出以下命令以返回更正状态:

       $ git bisect reset
       $ git bisect replay that-file

与使用 git bisect进行战斗回归相比,这似乎更多地表明答案是肯定的。

保存日志并重播

如果您想向其他人展示您的二分过程,您可以使用以下示例获取日志:

$ git bisect log > bisect_log.txt

并且可以使用以下方法重播它:

$ git bisect replay bisect_log.txt

实验

我刚刚做了一个实验来用 git 1.9.0 检查这个。

tar zcvf git.tgz .git
git bisect log >bisectlog
git reset --hard
git bisect replay bisectlog

We are not bisecting.
Bisecting: 2 revisions left to test after this (roughly 2 steps)
[somehash] Some commit log

tar zdf git.tgz

.git/BISECT_ANCESTORS_OK: Mod time differs
.git/BISECT_EXPECTED_REV: Mod time differs
.git/BISECT_LOG: Mod time differs
.git/BISECT_LOG: Size differs
.git/BISECT_NAMES: Mod time differs
.git/BISECT_START: Mod time differs
.git/HEAD: Mod time differs
.git/index: Mod time differs
.git/index: Contents differ
.git/logs/HEAD: Mod time differs
.git/logs/HEAD: Size differs
.git/ORIG_HEAD: Mod time differs
.git/ORIG_HEAD: Contents differ
.git/refs/bisect/bad: Mod time differs
.git/refs/bisect/good-0702dc7ec1d80d8ed38d7fe597dc0cce98ddccfc: Mod time differs
.git/refs/bisect/good-07357488ecac01085e6a5df1e4d44e00da4842e5: Mod time differs
.git/refs/bisect/good-5b753b5d63f16b60f5ccd6a954cf2f92e721af08: Mod time differs
.git/refs/bisect/good-5fac8a8900d5a27bbdf4bebd8b49cfef9757a4e3: Mod time differs
.git/refs/bisect/good-b2a73d5c02353589a81fb247255f78c41137299a: Mod time differs
.git/refs/bisect/good-f3f89511415bf386a6d4c815b92c9d3679a5e2eb: Mod time differs

git bisect 日志 | diff - bisectlog

25a26
> # first bad commit: [someotherhash] Some other commit message

结论

所以,这样重播后,git bisect log输了一条线。

我想说git bisect log包含大部分信息,但并不总是全部。

注意:用于本实验的二等分意味着对其他提交的几次手动重置,这可能会解释一些事情。

有没有人问过自己同样的问题?

是否应该关心丢失的线路?

4

0 回答 0