一个类似于git bisect的技巧,在提交中使用

7
使用git bisect,我们可以缩小问题在哪些提交之间可能被引入的范围。
我想知道是否有一种方法让git在单个提交中遍历(组合)文件,以便找出哪个文件/部分导致了问题?

5
不,但这是支持频繁提交小更改而不是单个大更改的有力论据。 - larsks
这是一个假设性问题还是你正在尝试解决一个实际的问题?也许有另一种方法来解决这个问题。 - Roman
@larsks 我知道那个评论会出现 :-) (而且是正确的)。 - PascalVKooten
1
@R0MANARMY,这是基于上周的情况,当时引入了一个bug,我很快就发现了它所在的提交,但花费了很长时间才找到确切的文件。如果git能够提供一些文件和检查等功能,那么我只需要重新加载页面就可以检查bug了。 - PascalVKooten
@larsks 我的主要问题通常是更改一个文件通常是更大计划的一部分。如果这个单独的文件的成功取决于其他文件的更改,你真的会提交1个文件吗? - PascalVKooten
1
通常情况下,你不应该提交一个单独的文件,除非它代表了与特定功能或工作项相关的所有工作。如果你经常发现一个工作项会导致大量提交的情况,你可以尝试看看是否可以将工作项进一步拆分。 - Roman
1个回答

2
使用git rebase -i $commit_you_want_to_split^推荐的方法拆分提交。使用edit重置操作来切割你的提交,然后使用reset HEAD^和一些git add将你的新小提交插入索引。诚然,这并不是自动的,但你可能能够用很多sedawk或Python脚本化它。更多细节请参见上面的SO链接。

一旦你的提交被切割,你的git bisect现在将更加精确。

有人自动化了这个过程吗?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接