git平分并找到最后一个好的提交-我错过了什么吗?



我的问题是当git bisect发现第一个错误提交:

$ git bisect good
2060c40f6c3d3c057f9fdab31643599da375296b is the first bad commit 👈 ❌
commit 2060c40f6c3d3c057f9fdab31643599da375296b
Author: ....
Date:   Tue Feb 16 11:15:52 2021 -0800

现在,理想情况下,我想继续并确定LAST GOOD COMMIT.

我的问题是:(注意:下面是我如何手动找到最后一个好的提交的步骤。)这并不难,只是乏味)。

git完全知道2060c40f6c3d3c057f9fdab31643599da375296b之前有8993de6cc8bac3d5867e6b84fe30c52c9e604737(见下文)。当git/git bisect识别第一个错误提交时,是否有一种方法可以快速从git/git bisect获取该信息?,而无需手动搜索提交历史?

我想看什么

$ git bisect good
2060c40f6c3d3c057f9fdab31643599da375296b is the first bad commit
8993de6cc8bac3d5867e6b84fe30c52c9e604737 is the last good commit 👈 MOCKUP

我如何找到最后一个好的提交的细节:

git checkout <mybranch-before-git-bisect>then

git log

我回到了顶部,现在可以寻找第一个错误提交

/2060c40f6c3d3c057f9fdab31643599da375296b

让我

commit 2060c40f6c3d3c057f9fdab31643599da375296b (037.secure.010.varsettings2jsontag, refs/bisect/bad) 
❌ 1ST BAD COMMIT
Author: ...
Date:   Tue Feb 16 11:15:52 2021 -0800
037.secure.010.varsettings2jsontag fixed, added cssremovefilter ing for tests
commit 8993de6cc8bac3d5867e6b84fe30c52c9e604737 (refs/bisect/good-8993de6cc8bac3d5867e6b84fe30c52c9e604737)  
✅ LAST GOOD COMMIT
Author: ...
Date:   Mon Feb 15 22:29:42 2021 -0800

什么不工作(但感觉应该)

  • git logright after bisect发现第一个错误的提交是没有用的
$ git log
commit 27f31fc8be6c6ef0ae493272364397c7b27f2550 (HEAD -> 059.ora.010.batch_usergroup_hang)
Author: ...
Date:   Tue Feb 9 21:36:43 2021 -0800 1️⃣
"just a backup, use it sparingly on main codelines"
commit cdd80520ffd025a98629f3aa43a817ee4ebe96ab
Author: ...
Date:   Tue Jan 26 15:41:52 2021 -0800 2️⃣
wip on generated/urls.py - not much so far
commit b7d05cf0df9a43b8ab3f36a81e618c8130905d87
Author: ...
Date:   Sun Nov 15 22:17:12 2020 -0800 3️⃣

。如果在git bisect找到第一个错误的提交后执行git log,我就会得到3个条目,它们在时间上相隔很远,分别是1️2️3️2。许多提交都丢失了,所以这是无用的。

我使用的是git版本2.23.0

最后一个正确的提交是第一个错误提交的父节点,您可以通过将^添加到给定的提交散列中来查找:

$ git show 2060c40f6c^ | head -1

相关内容

最新更新