对于代码中的每个缺陷,我创建单独的分支。当缺陷修复后,我将此分支合并到主分支中,因此我的历史记录如下所示(我们看到两个已修复的分支):
defect1 fix defect2 fix
a---b---c---d e---f
/ \ / \
---o---1---x---y---z---2---o---3---w---4---o---
问题是如何在任何时间点(例如,对于过去任何已关闭的缺陷)获取fix1(分支开始(1)和分支结束(2)之间)或fix2((3)和(4)之间的差异)的差异。
更新:实际问题是如何计算 SHA 总和a
and d
or e
and f
执行下一个明显的 diff 命令diff <commit> <commit>
答案很简单:
git diff 1..d
这显示了您的分支点之间的差异defect1 fix
分支(即1
)就结束了(即d
).
为了找到开始defect1 fix
分支、使用
git merge-base master defect1-fix-branch
如该答案所示:https://stackoverflow.com/a/2458173/520162 https://stackoverflow.com/a/2458173/520162.
这给你1
根据文件git merge-base http://linux.die.net/man/1/git-merge-base.
的结束defect1 fix
分支仅通过其名称来标识。因此,找到引入的所有差异defect1 fix
,你需要做
git diff 1..defect1-fix-branch
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)