提交签名如何工作?

2023-12-29

我目前想知道 git commit 签名到底是如何工作的。

试图找出这一点,但找不到任何确切的技术文档。我知道如何进行 git 提交签名,但我想知道 git 到底做了什么来签署提交。

签署的具体内容是什么?它是给定提交时存储库内的完整数据,即提交消息等数据以及所有文件的数据吗?或者只是带有指向所包含文件等的指针的提交?


尽管没有任何地方记录,但对源代码 https://github.com/git/git/显示它是提交对象的全部内容。然后这些内容被修改为insert签名,因此验证过程必须将签名剥离到单独的缓冲区中,并将原始的签名插入前数据传递给 GPG 签名者。

然后,GPG 签名数据会计算提交的 SHA-1 校验和,以成为提交的哈希 ID。看gpg-interface.c and commit.c, 功能sign_buffer and do_sign_commit分别。标签签名位于builtin/tag.c(参见函数do_sign及其调用者);签名标签的签名是附加的而不是插入的,但除此之外,其工作方式几乎相同。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

提交签名如何工作? 的相关文章

  • 在 Web 应用程序中显示最新的提交值?

    我有一些 Rails 应用程序 我使用 Git 作为版本控制系统 我使用 GitHub 或 Beanstalk 作为存储库主机 从理论上讲 我想要做的事情非常简单 以某种方式在 Web 应用程序的页脚中显示最新的提交 ID 号 哈希值 这样
  • 在centos上设置jenkins:ssh密钥和git的问题

    经历了很多问题 但似乎没有什么能解决我的问题 或者更准确地说 我不确定我是否正确地完成了整个事情 所以这里是 已安装centos 6 3操作系统 然后我按照以下指南安装詹金斯 https wiki jenkins ci org displa
  • 我在哪里? *(无分支)

    我已经熟悉了创建 合并和删除分支 我想知道我在哪里 这样我就不会将工作提交到错误的分支 我用git branch a看看我有哪些分支 我认为星号 显示我当前所在的分支 当我得到以下信息时 这意味着什么 no branch master or
  • Git post-receive - 如何检查推送的分支是否与主分支合并

    在我们的团队中 我们通常将所有任务推送到单独的分支中 然后发布经理审查这些分支并将它们合并到 主 分支中 有时团队成员忘记将他们的分支与主分支合并 在推送之前 所以我想做的是 在用户推送后输出一条消息 请与主分支合并 我想我需要检查一些内容
  • 无法使用 git 推送或获取 [重复]

    这个问题在这里已经有答案了 我可以拉 但无法使用 git 版本 1 9 5 推送或获取 它突然开始给我以下错误 关于如何修复它有什么想法吗 git fetch fatal unable to access https email prote
  • 从自己的 gitlab 服务器安装节点模块

    我想从我们的 gitlab 服务器安装节点模块 这是存储库的链接 http ABCD GITLAB myGroup myNodeModule git http ABCD GITLAB myGroup myNodeModule git 根据n
  • 如何生成类似github的影响图?

    是否有一些程序 或者我错过的一些神奇的 git 插件 可以从 git 存储库获取影响图或类似的东西 而无需通过 github 就数据收集而言 我可以生成图表 我不确定从哪里开始编写自己的代码 我假设有一些标志我可以传递给 git log 来
  • 为什么“git描述-dirty”在描述干净结帐时添加“-dirty”后缀?

    我刚刚发现 dirty选项git describe看起来它应该做一些非常有用的事情 即在输出中附加一个后缀git describe当工作树脏时 但是在我的一些存储库上似乎并非如此 git status On branch 8 30 noth
  • 在 Windows 上使用 Git - 意外丢失了大量工作。我可以拿回来吗?

    我很困惑 我想我已经失去了几个小时的工作时间 我之前在 Git 中编辑了一个文件 我保存了它 但没有提交 我确实做了一些其他文件更改 并提交并推送了它们 然而 有一个文件被搞乱了 所以我单击了最后一次成功的提交 然后按了 回滚到此提交 令我
  • http.h:6:23: 致命错误:curl/curl.h:没有该文件/目录

    我在 CentOS 7 中下载 git 包 wget https www kernel org pub software scm git git 2 0 1 tar gz tar xzf git 2 0 1 tar gz 当我编译git时
  • 合并 BPM 图表的最佳实践

    我们在 Java 环境中使用 Alfresco 活动图 这些图是有版本的 我们确实使用 GIT 我们经常会遇到合并分支的合并冲突 解决这个问题确实很痛苦 因为我们必须比较文件的文本内容来检查差异 有时 重新应用更改比合并更轻松 是否有合并此
  • Android repo 脚本创建的 .repo/projects/ 中的裸 git 存储库的用途是什么?

    The 安卓源码 http android git kernel org 由以下人员管理repo http source android com source version control html 使用 repo 同步时 一个名为 re
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • 结帐时出现 Git 错误:“致命:引用不是树”

    当我决定弄清楚为什么我正在从事的项目如此重要时 这一切就开始了 我运行了以下脚本 git rev list objects all git cat file batch check objecttype objectname objects
  • 为什么从网上下载Git 2.0,总是得到1.9.4的安装包?

    为什么从网上下载Git 2 0 总是得到1 9 4的安装包 为什么你不能在互联网上的任何地方找到一个不仅标记为 2 0 而且你下载的安装存档也标记为这样的 Git 安装程序包 例如 这个2 1 3 站点 http git scm com d
  • Git撤销本地分支删除

    我刚刚删除了错误的分支 并进行了一些我需要的实验性更改git branch D branchName 如何恢复分支 您可以使用git reflog http git scm com docs git reflog查找分支最后一次提交的 SH
  • 为什么 git 在每次合并时都运行“git gc --auto”?

    今天 git 开始表现得很有趣 嗯 比平时更有趣 坚持运行git gc每次合并后 即使它们是背靠背的 C Projects my current project gt git pull remote Counting objects 31
  • 如何使用 git 找到一个分支中但不在另一个分支中的所有提交?

    我有两个分行master and live Master是发展 分支并包含尚未准备好进入的提交live 如果在master需要进入的分支live树枝然后他们被樱桃采摘master to live 有时会做出承诺live分支然后是 樱桃摘入m
  • git 清除远程仓库

    如果我将错误的初始提交 或多个 推送到远程存储库 并且只想清除 销毁它 我可以通过命令来完成吗 将其从服务器中完全删除非常重要 这样它就不会占用磁盘空间 例如 今天我推送了一个完整的 Visual Studio 项目 其中包含 dll sd
  • 如何在 git 中将我的功能分支变基到开发分支,尽可能减少冲突?

    我的功能分支已超过大约 30 次或更多提交 与此同时 在开发分支中 其他开发人员还推出了一些其他功能 因此 每次在开发中发布新功能时 我都会被要求 将开发分支重新建立到我的功能分支上 解决冲突 如有 继续在您的功能分支中开发 问题 第二步就

随机推荐

  • 如何取消吐司

    我开发了一个 Android 应用程序 但我遇到了一个问题Toast 假设我正在显示一个Toast 它显示在应用程序窗口上 当出现对话框时 toast 不会立即消失 我想知道如何取消吐司 Toast makeText返回一个Toast目的
  • Google 云端硬盘文件夹 ID

    我有一个文件夹路径 例如 docs word 我想获取 word 文件夹 最后一个文件夹 的ID 以便在那里上传文件 我如何获取身份证 所以我想通了 你要做的就是获取 root 的 iddrive service about get exe
  • 使用 JSFiddle 时从 javascript 控制台调用 jQuery

    在我的调试和创建过程中 通常会从 javascript 控制台 firefox 或 chrome 内置的 firebug 触发一些 jQuery 命令 仅用于检查和测试目的 我注意到我无法使用 jQuery 调用与 JSFiddle 上页面
  • SSRS 按参数分组

    如果我有一个报告参数 Fruit 允许多项选择 如何使用该参数作为 SSRS 矩阵中的列组 通常 我会在查询中使用如下参数 WHERE tbl fruit In Fruit 然后我将使用数据集中的列作为我的组 但是 在这种情况下 我需要返回
  • Visual Studio Team Explorer 列出了我未进行的文件更改

    例如 我刚刚启动 Visual Studio 来查找我从未打开过的文件的 28 个更改 当我尝试撤消更改 右键单击并选择撤消 时 我会看到一个确认对话框 我单击 是 然后什么也没有发生 我的一位同事说 这种情况有时会发生在他身上 除了重新开
  • Silverlight 5 VS 2012 单元测试

    在过去的几个小时里 我一直在尝试为 Silverlight 应用程序生成单元测试 许多帖子都提到了 Silverlight 单元测试项目 它是 Silverlight 工具包的一部分 但是我下载了工具包还是没有Test Project 好像
  • True Type 字体格式:笔位置、提前宽度和字距调整

    我正在做一些字体工作 目前使用 TTF True Type Font 文件格式 我知道该字形有一个笔尖位置和一个advance width参数指定在绘制下一个字形之前我们应该向右移动的距离 假设这里的字体是从左到右并且是水平的 我的问题 在
  • 在 iis 中托管 asp.net 网站的分步过程?

    有人可以给我在 iis 中托管 asp net 网站的分步程序吗 确保框架已安装 将您的站点放在系统上的某个位置 并创建一个指向它的虚拟目录 确保它是一个应用程序 检查 ASP net 选项卡以确保选择您正在使用的版本 完成 禁止您需要的任
  • “等待上升沿(clk)”与“如果上升沿(clk)”有什么区别?

    我在 VHDL 中遇到了两种风格的过程语句 process clk begin if rising edge clk do something 另一种是 process begin wait until rising edge clk do
  • 如何防止 WPF 按钮在单击后保持突出显示状态?

    单击标准 WPF 按钮时 它会以蓝色突出显示 可能使用设置的任何 Windows 主题中的蓝色 并且它会保持突出显示状态 直到您与任何其他控件进行交互 对于我的应用程序来说 这会让用户感到困惑 有没有一种简单的方法可以关闭此功能并使按钮恢复
  • 使用外部表单登录Joomla 1.5(不在joomla文件夹内,但在同一服务器上)

    我目前安装了 Joomla 1 5 以及另一个网站 它们都驻留在同一网络服务器上 但是 它们位于 wwwroot 目录中的不同文件夹中 我想在非 joomla 网站中放置一个登录表单 该表单将使用户登录到 Joomla 我已经尝试将 Joo
  • jQuery idTabs插件选项卡点击功能

    使用 idTabs jQuery 插件时 如何添加单击选项卡时调用的函数 文档是这样说的 但没有给出示例 click function Function will be called when a tab is clicked ex idT
  • 在列中查找相同的数据并将其过滤到另一张工作表

    我在这段代码上花了几个小时 并且确实需要一些更好的专家意见 表 1 上的 A 列包含动态数据列表 通常是 IP 地址 但对于此来说 它只是一个数字 可以有重复 也可以没有 我需要在 A 列中找到所有相同的数据 选择它 并为其运行特定的代码
  • 在 OpenCV 中访问多维 Mat 的子矩阵

    根据这个post https stackoverflow com questions 8809517 multi dimensional data in a matrix in opencv with c从 OpenCV 文档中 我可以初始
  • Ember-CLI:修复“'Ember'未定义”?

    当使用 Ember CLI 并运行 ember 服务器时 我从 JSLint 收到以下错误 app path filename js line 1 col 16 Ember is not defined Adding import Embe
  • 如何调用另一个文件的函数而不包含该文件

    我有一个类假设 A 和另一个类 B 分别位于两个不同的文件 A php 和 B php 中 如何在B php文件中调用A类的函数而不在B php中包含A php文件 我们可以使用静态函数来调用吗 我见过一个应用程序 其中不包含文件也不扩展
  • render_template 和重定向之间的区别?

    return redirect url for index var var return render template index html var var 这两行本质上是同一件事吗 这两个函数有什么区别 redirect返回一个 302
  • 如何在 Flutter 中“设置”“WidgetTester”进行多个测试

    1 问题 The testWidgets函数显然只是test功能 我现在试图解决的一个用例是为多个泵送相同的小部件testWidgets a setUp对于多个testWidgets 但是 如果它在每个测试中创建一个新实例 我该如何做到这一
  • ANSI C 中的动态列表?

    我是否正确地认为创建在 C 中运行时增长的列表的唯一方法是使用链表 您可以结合使用 malloc 和 realloc 首先初始化一个 C 数组 malloc 并增长它 realloc 但是 如果您进行大量插入 您不会希望一次将其增加 1 个
  • 提交签名如何工作?

    我目前想知道 git commit 签名到底是如何工作的 试图找出这一点 但找不到任何确切的技术文档 我知道如何进行 git 提交签名 但我想知道 git 到底做了什么来签署提交 签署的具体内容是什么 它是给定提交时存储库内的完整数据 即提