我正在使用git。 假设我们有一个多人正在研究的共同分支。 正在进行一个相当大的变化,比如它有20次提交并且相当多的线路发生了变化。 现在说完成的“更改”/“功能”/“修复”用提交消息标识。 因此,在git-log中,提交看起来像:
TASK-X: Add foo.
TASK-Y: Added rofl.
TASK-X: Added bar.
TASK-X: Added baz.
现在,想象一下这个规模要大得多。想象一下,在彼此之间进行了大量的提交。有人现在告诉我“在TASK X上进行代码审查”。
我可以很容易地找到所有相关提交 - 但是说很多提交包含诸如“添加调试语句”,“删除调试语句”,“修复了我的代码中的错误”等内容。
通过提交提交会非常烦人,因为我可能会注意到稍后(upcomming)提交中已修复的错误,而且我还缺少整个提交的上下文。
是否有办法显示任务X的合并/合并提交,但不包括在其间完成的所有其他不相关的提交?
PS:我知道更好的方法是进行功能分支,并强迫人们在合并之前清理自己的混乱,但我对此无能为力。答案 0 :(得分:1)
您可以在第一次提交TASK X之前基于提交创建(临时)审核分支
git branch review-TASK_X <first commit for TASK X>^
然后樱桃挑选TASK X的所有提交一个接一个
git cherry-pick <first commit for TASK X>
git cherry-pick <second commit for TASK X>
....
git cherry-pick <last commit for TASK X>
然后简单地在HEAD及其分支点
之间区分该分支git diff <first commit for TASK X>^