对于我的研究,我需要很少的数据,其中一个是前一次提交的SHA号,即如果我给出一个特定的提交号/ SHA号,我应该能够在它之前得到SHA号。
帮助我使用git命令获得相同的结果。
答案 0 :(得分:4)
将任何说明符转换为哈希ID的命令为git rev-parse
。
语法意味着“查找提交的父提交”来自gitrevisions,commit^
或commit~
- 使用您喜欢的任何一种类型。 commit
部分几乎可以是任何有效的提交说明符,包括分支名称,另一个提交哈希ID,特殊名称HEAD
或这些后缀表达式中的另一个。 / p>
因此:
HEAD^
是HEAD
的父级,并且:
HEAD^^
是HEAD^
的父级,依此类推。
tilde语法实际上是许多帽子后缀的压缩版本,因此:
HEAD~5
与以下内容相同:
HEAD^^^^^
如果丢失了波浪号后的数字,Git假设您的意思是1
。
这一切意味着什么,放在一起,是:
git rev-parse HEAD^
(或HEAD~
)将为您提供实际的哈希ID。但是你可以用任何普通的Git命令来编写HEAD^
或HEAD~
。同样,如果1234567
是有效缩短的提交哈希ID,则可以编写1234567^
或1234567~1
来引用其父提交。
(提交 merge 提交有两个或更多个父项,在这种情况下,有更多语法可用于一次提取每个父项,或引用所有父项。再次,请参阅{ {3}}了解详情。)
答案 1 :(得分:3)
server.route({
method: 'GET',
path: '/image',
handler: function (request, reply) {
var b64str="data:image/gif;base64,R0lGODlhPQBEAPeoAJosM//AwO/AwH...";
var buf = new Buffer(b64str, 'base64');
reply(buf).bytes(buf.length).header('Content-type', 'image/gif');
}
});
将为您提供由其父级的SHA指定的提交的SHA。
答案 2 :(得分:2)
git log --format="%H" -n 1 <commit>~
只输出散列(%H)并将输出限制为1个条目(而不是显示所有祖先)来自提交的父级(〜)。