我修复了一个文件,并将其提交到我的git
存储库.
一段时间后,我发现它已经退步了.我想知道在提交修复已经取出来,所以我想git bisect
和git log --all -S TERM
,在"期限"是由我的修补程序和出现无处可在项目中添加一个字符串.
我发现git bisect
归咎于一个无关的提交,我发现git log --all -S TERM
只列出了我添加TERM的提交,并没有列出任何提交已删除它,即使它不再在"master"的文件中.
经过一些手动搜索后,我发现两个分支之间存在合并提交.一个分支有我的修复,一个没有.合并作者选择了没有我修复的分支(奇怪,因为文件中没有冲突).
我的问题是:
git bisect
找不到合并更改?关于此限制,我在联机帮助页中没有看到任何内容.有没有不同的方法来使用它会在上面的场景中找到错误的合并?git log --all -S TERM
列出合并提交?该联机帮助页显示它列出了"引入或删除实例"的提交.合并提交不会删除我的字符串吗?有没有不同的方法来使用它会在上面的场景中找到错误的合并?git bisect
和git log -S
是在上述情况下没用,什么是找到坏合并的有效途径?如果没有这些工具,我需要花很长时间才能找到问题的变化.我正在尝试编写一种方法来判断给定的提交是否位于给定分支的第一个父链上。因此,例如,合并基不会飞,因为提交可能已被合并。我想知道确切的提交是否曾经是分支的尖端。
注意:相关分支采用非快进合并策略。