我在一份旧版本的软件中有一段代码,但在当前版本中已被移除。我想找出这段代码是何时从代码库中被移除的。目前我的做法是手动比较我的集成分支和每个旧提交之间的差异,但是在拥有包含该代码的文件版本和当前版本之间的提交太多了。
简而言之,如果我在旧版本的文件中有44-52行的代码,在新版本中不存在,我该如何找到移除它的提交?
我在一份旧版本的软件中有一段代码,但在当前版本中已被移除。我想找出这段代码是何时从代码库中被移除的。目前我的做法是手动比较我的集成分支和每个旧提交之间的差异,但是在拥有包含该代码的文件版本和当前版本之间的提交太多了。
简而言之,如果我在旧版本的文件中有44-52行的代码,在新版本中不存在,我该如何找到移除它的提交?
尝试使用git log -S"<code>" -- <file path(s)>
命令,它会显示有指定字符串变化的提交记录。
这意味着如果您删除了一段代码,则对该代码的引用次数将减少1次。
git log -S"hello world" -- src/
这将显示添加或删除“hello world”的提交记录。
0
的代码退出,如果当前源代码错误,则应该以1到127之间的代码(包括1和127),除了125
退出。任何其他退出代码都将中止二分过程。需要注意的是,通过“exit(-1)”终止的程序会留下$? = 255(请参阅exit(3)手册页),因为该值被截断为“& 0377”。当无法测试当前源代码时,应使用特殊的退出代码125。如果脚本以此代码退出,则将跳过当前修订版(请参见上面的git bisect skip)。选择使用125
作为此目的的最高合理值,因为126
和127
由POSIX shell用于信号特定的错误状态(127
用于未找到命令,126
用于找到但不可执行的命令---这些细节并不重要,就bisect run
而言,它们是脚本中的正常错误)。
这里您可以查看如何使用 git bisect 的示例代码。