首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何查找Github文件的SHA blob

如何查找Github文件的SHA blob
EN

Stack Overflow用户
提问于 2013-11-26 10:48:24
回答 4查看 15.8K关注 0票数 33

我正在使用此API更新我的存储库上的文件,它要求我对要更新的文件具有有效的SHA blob:

http://developer.github.com/v3/repos/contents/

如何找到特定文件的SHA blob?假设在测试帐户的testrepo中,test.txt文件的SHA是什么?

https://github.com/testacc01/testrepo01

非常感谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-26 11:53:48

用于更新文件的文档指定您将需要为要替换的文件提供SHA。最简单的方法也是查询github。例如:

代码语言:javascript
复制
> curl https://api.github.com/repos/testacc01/testrepo01/contents/test.txt
{
  "name": "test.txt",
  "path": "test.txt",
  "sha": "4f8a0fd8ab3537b85a64dcffa1487f4196164d78",
  "size": 13,
 …

因此,您可以在JSON响应的“So”字段中看到SHA是什么。当您制定使用新版本更新文件的请求时,请使用它。成功更新文件后,该文件将具有新的SHA,您需要请求该SHA才能再次更新它。(我猜,除非您的下一次更新是在不同的分支上进行的。)

票数 30
EN

Stack Overflow用户

发布于 2017-11-27 09:46:20

如果您使用的是GraphQL API v4,您可以使用以下内容来查找特定文件的sha:

代码语言:javascript
复制
{
  repository(owner: "testacc01", name: "testrepo01") {
    object(expression: "master:test.txt") {
      ... on Blob {
        oid
      }
    }
  }
}

Try it in the explorer

票数 7
EN

Stack Overflow用户

发布于 2020-06-28 00:42:41

如果您不想访问api,您可以自己生成SHA。Git通过连接blob {content.length} {null byte}格式的头文件和您的文件内容来生成SHA。例如:

代码语言:javascript
复制
content = "what is up, doc?"
header = "blob #{content.bytesize}\0"
combined = header + content # will be "blob 16\u0000what is up, doc?"
sha1 = Digest::SHA1.hexdigest(combined)

来源:https://git-scm.com/book/en/v2/Git-Internals-Git-Objects

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20207594

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档