我有一个脚本需要引用存储库中的初始提交.git有特殊的参考HEAD,但没有相应的TAIL.我找不到任何git help rev-parse可以帮助我的东西.
这是我想做的事情:
git show TAIL
Run Code Online (Sandbox Code Playgroud)
这是我的一个选择:
git show `git log --reverse | if read a commit ; then echo $commit ; fi`
Run Code Online (Sandbox Code Playgroud)
这非常hacky,取决于git log的输出没有改变.
现在我只标记初始提交并将其用作我的refspec.但是,我想发布一个通用工具,所以这不是一个很好的选择.
对于代码中的每个缺陷,我创建单独的分支.当缺陷修复后,我将这个分支合并到master中,所以我的历史如下图所示(我们看到两个分支有修复):
defect1 fix defect2 fix
a---b---c---d e---f
/ \ / \
---o---1---x---y---z---2---o---3---w---4---o---
Run Code Online (Sandbox Code Playgroud)
问题是如何在任何时间点(例如,对于过去的任何封闭缺陷)获取fix1(在分支开始(1)和分支结束(2)之间)或fix2(在(3)和(4)之间的差异)之间的差异.
更新:实际的问题是如何计算出的SHA summs a和d或e和f执行下一个明显的diff命令diff <commit> <commit>