Git "git config --global user.name" 为什么存在这个选项?

2023-11-30

Git 初学者警报!我有一个基本问题,为什么 GIT 允许更改用户名作为配置选项

 git config --global user.name trojan

这个选项是否会为提交者冒充并在历史/日志中造成混乱打开大门?为什么不像从用于连接 GIT 的凭据中获取用户名那么简单?


  1. As 格雷格在评论中指出,只能在纯推送工作流程中工作。还有很多其他的,包括纯拉动、电子邮件、git bundle,或这些的任意组合。
  2. 它不能quite出于技术原因工作:提交的身份是该提交的完整内容的加密校验和,包括提交的author and committer字段。这些必须在创建提交时分配,并且一旦分配,就永远不能更改:要“更改”提交的任何部分,请将其复制到新的提交对象,该对象会获取新的提交哈希,该哈希仅与原始提交相同(如果是)逐位完全相同的。换句话说,我可以通过逐位复制您的提交来冒充您,包括所有源代码、日志消息、时间戳等。但要做到这一点我必须get你的提交,之后我的副本就是你的提交。在这种情况下,它is你的承诺,以及它should上面有你的名字!
  3. 通常有充分的理由将公开的身份(用户名和电子邮件)与任何身份验证凭据分开:例如,我用于对 GitHub 进行身份验证的凭据与我用于对其他位置进行身份验证的凭据不同。但我还是同一个人。人们可以添加一定程度的间接性——我使用凭据进行身份验证A,然后是站点地图A to B获取我的名字(事实上 GitHub 就是通过 ssh 来实现这一点的,因为一个人“登录”为[email protected])——但这将所有权力都掌握在网站手中。这与设计理念相悖。

如果您希望建立真实性某些特定提交的 - 例如,您获得 ID 为99154acf3ba...或类似的东西,并且它声称是由 Linus Torvalds 或 Bill Gates 或 Barack Obama 或其他什么人创作的——Git 提供了使用某些外部身份验证服务的能力,例如 PGP,它使用数字签名及其所有复杂性(包括信任链和撤销)。容我们说,这个特殊领域有一些持续的发展,其中一些对 Git 有所影响.

(通过 GPG 进行 PGP 身份验证is内置于 Git,但由外部程序完成。这里特别明显的弱点是签名的标签或提交仅验证一个标签或提交本身。进一步的身份验证取决于系统的安全性默克尔树,这不是quiteGit 对 SHA-1 的使用尚未受到损害,但越来越受到怀疑:请参阅链接的 StackOverflow 问题。)

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

Git "git config --global user.name" 为什么存在这个选项? 的相关文章

  • 将“复制到剪贴板”添加到 GitHub markdown 的简单方法?

    具体来说 我有一些用于安装的代码块 我希望用户能够快速将其复制并粘贴到终端中 我想要一个用于代码块 复制到剪贴板 的按钮 由于 git 克隆 URL 有一个 复制到剪贴板 按钮 我想知道我是否可以利用该按钮 或者如果不能 是否可以将一些相对
  • 如何撤消删除 github wiki 页面的操作?

    我删除了 github 存储库 wiki 上的一个页面 单击该文件的链接现在会将我带到一个新的编辑屏幕 我认为这可能是在我的存储库分支中 但是在 chrome 上以隐身模式点击链接会出现错误 表明我无权编辑此文件 大概是因为我正在尝试创建它
  • 我可以忽略全局 .gitignore 吗?

    我的全局 gitignore 一般都很棒 但对于这个一次性项目 我不希望应用全局规则 如何删除这个怪异存储库的全局 gitignore 规则 在您的存储库中运行此命令 git config local core excludesfile f
  • 执行 git Push 时出现“diff.renamelimit 变量”警告

    我将本地提交推送到远程 git 服务器并收到以下警告消息 remote warning only found copies from modified paths due to too many files remote warning y
  • 自动同步两个 git 存储库

    是否可以保持同步两个 Github 存储库 远程 的特定文件夹 有两个 github 存储库 repoA 和 repoB 这两个存储库都有名为 ABC 的文件夹以及其他独特的文件夹 如果repoA的文件夹ABC中的任何文件有更新 我想自动更
  • 为什么“git描述-dirty”在描述干净结帐时添加“-dirty”后缀?

    我刚刚发现 dirty选项git describe看起来它应该做一些非常有用的事情 即在输出中附加一个后缀git describe当工作树脏时 但是在我的一些存储库上似乎并非如此 git status On branch 8 30 noth
  • Jenkins GIT 包含从未构建过的区域

    我正在尝试使用包含区域在 Jenkins 中构建我的工作 但每当选中此选项时 民意调查结果总是说未检测到任何更改 我尝试了许多不同的路径 以及使用工作区进行 不进行强制轮询 结果是轮询从未检测到任何更改 但一旦我删除这些选项 它们就会在下一
  • 在 Windows 上使用 Git - 意外丢失了大量工作。我可以拿回来吗?

    我很困惑 我想我已经失去了几个小时的工作时间 我之前在 Git 中编辑了一个文件 我保存了它 但没有提交 我确实做了一些其他文件更改 并提交并推送了它们 然而 有一个文件被搞乱了 所以我单击了最后一次成功的提交 然后按了 回滚到此提交 令我
  • Git:以新名称签出旧版本的目录

    如何以新名称查看目录的先前版本 我一直都有一个目录foo在我的仓库中 我想创建一个目录foo old在我当前的工作树中 其内容是HEAD 2 foo 我同时需要两个版本 以确保它们给出相同的结果 测试这需要相当多的代码 并且需要同时提供两个
  • 如何使用 git --word-diff 显示空格差异?

    为了说明问题 参见diff https github com nim lang Nim commit 47c7fd037ed28b7de3d120b003d059d30e18f128 diff split diff 8af935b2312d
  • 尝试配置 GIT 时 Eclipse 没有响应

    Windows 10 专业版 64 位SSD金士顿 i5 4690Eclipse 版本 全部工作空间 空问题 每次我尝试配置 TEAM gt GIT gt 配置或尝试导入 创建本地 远程 git 时 Eclipse 都会冻结 直到我强制用任
  • 使用Gitlab Pipeline将数据推送到ftpserver

    我想使用 Gitlab 管道部署到 ftp 服务器 我尝试了这段代码 deploy You can name your task however you like stage deploy only master deploy script
  • 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
  • 如何恢复误删除的Gitlab问题?

    看来我不小心删除了一个Gitlab问题 有什么办法可以恢复吗 None
  • 为什么 Git Bash 无法运行我的可执行文件?

    I am on git for windows https github com git for windows 吉特 巴什 我无法在命令行上运行可执行文件 Pedr Abc 07 MINGW64 c dev ls sqlite3 exe
  • git merge --squash 和 gitcherry-pick 有什么区别?

    如果我在标准的主功能工作流程中工作 那么将功能分支压缩到主功能分支和将其挑选到主功能分支之间有什么区别 分支示例 m1 m2 master f1 f2 feature 我认为两者都有相同的输出 即 m1 m2 m3 master f1 f2
  • GitHub API 获取用户/组织总数

    Using GitHub API https developer github com v3 如何计算请求时的用户 组织总数 Users https developer github com v3 users and 组织机构 https
  • 如何在 git 中将我的功能分支变基到开发分支,尽可能减少冲突?

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

随机推荐

  • DateTime::add 会添加小时,即使间隔应该仅为秒

    这来自我之前关于获取指定数据集的平均时间间隔的问题 位于此处 1 我将再次发布整个函数 function getATBData siteID fromDate toDate global pdo ATBarray array maxATB
  • Android - 从 LocationClient 获取的位置不支持速度

    我正在使用新的 Google LocationClient 来检索地理位置 我需要获得每个点 位置 的速度 我现在正在做的是 if mLocationClient null mLocationClient new LocationClien
  • 如何使用 PHP 摘要?

    为什么要使用这样的摘要 它是否可以加快工作速度或者它的具体用途是什么 file1 php abstract class Search Adapter Abstract private ch null abstract private fun
  • 使用 Java DSL 在远程 S(ftp) 中移动已处理的文件

    一旦批处理使用 Spring 集成和 Java DSL 成功处理文件 我就会尝试在远程 SFTP 上移动文件 实现这一目标的最佳方法是什么 添加批量移动远程文件的步骤 或者使用FTP出站网关并提供MV命令 我倾向于选择第二种解决方案 让批处
  • 什么是虚拟方法?

    为什么要将一个方法声明为 虚拟 使用虚拟有什么好处 The Virtual修饰符用于标记可以在派生类中使用以下方式修改方法 属性 ect override修饰符 Example class A public virtual void Foo
  • Azure HTTP 请求超时解决方法

    目前 我们有一个托管在 Azure VM 实例上的应用程序 此应用程序有时会处理长时间运行和空闲的 HTTP 请求 这导致了一个问题 因为Azure 将关闭所有空闲时间超过几分钟的连接 我看到了一些关于设置较低 TCP keepalive
  • 如果运输方式是 Woocommerce 中的本地取货,则需要填写订单备注

    在 Woocommerce 中 我想要结账订单备注字段仅当选择本地取货作为运输方式 我已设法更改本地提货标签 以便指示客户向该字段添加详细信息 但想知道是否有一种方法不允许他们在向该部分添加详细信息之前继续操作 任何帮助将非常感激 下面的代
  • 使用空传播/空条件运算符时出错

    我在 VS 2013 中运行 NET 4 5 项目 为什么以下代码出错 var w Request Properties MS HttpContext as System Web HttpContextWrapper string IP w
  • symfony2 在构造函数中重定向

    我想在特定的情况下在构造函数中进行重定向 我尝试这样做 return new Symfony Component HttpFoundation RedirectResponse url 像这样 return this gt redirect
  • Chart.js - 绘制水平线

    我想使用在图表中绘制一条水平线Chart js 但我做不到 我读过这个问题 Chart js 绘制任意垂直线 但我无法转换绘图代码水平线不是垂直的 我希望你能帮助我 尤其是土豆皮 下面是绘制水平线的 JavaScript 代码 var da
  • Math.round(Math.random) 返回 3 个唯一数字问题 [已关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 好的 所以我需要返回 3 个互不相等的随机数 然后 当
  • 具有不同调色板的 R 热图

    我正在尝试使用不同的调色板在 R 中创建一个简单的热图 我想使用渐变 以便所有低于阈值 N 的数字都指定为一种颜色 例如紫色 所有高于阈值的数字都指定为另一种颜色 例如橙色 数字离阈值越远 颜色应该越深 这是一个示例数据集 Division
  • 解析Json以获取一个NSArray中的所有内容

    内容就是这样 id title website categories id label updated id title website categories id
  • 将矩形扩展 100px

    我在 C 中使用 OpenCV 2 4 4 并且有 矩形 我想将其放大 x 像素 OpenCV 文档提供很好的例子 寻找 将矩形扩大或缩小一定量 如何在图像中使用它http opencv willowgarage com documenta
  • 对于指向同一单元格的两个范围变量,“Is”运算符不会返回 true

    我有一个名为的自定义类imera其中我包含一个名为的范围属性date cell 创建 imera 集合时 每个 imera 的 date cell 都设置为引用 Excel 中的特定单元格 尝试按 date cell 在集合中搜索时 Opt
  • iPhone如何在按音量键时隐藏音量覆盖

    我做了很多事情来解决这个问题 比如添加MPVolumeView 有人说系统音量HUD 如果您在当前添加 MPVolumeView 实例 则会隐藏 但这不起作用 我添加观察者来观察体积的变化 并拍照 但现在我不知道如何隐藏音量HUD 我尝试过
  • 将数字划分为显示在用户表单标签中的唯一排序数字

    我想将数字分成唯一的排序数字 例如 数字可以是 127425 我希望结果为 12457 这意味着已排序并删除了重复项 我认为最好是用例子来解释 Number Result 127425 12457 2784425 24578 121 12
  • 限制 Java 中的文本字段

    有没有办法限制文本字段只允许数字 0 100 从而排除字母 符号等 我找到了一种方法 但它比看起来必要的要复杂得多 如果必须使用文本字段 则应该使用JFormattedTextField with a 数字格式化程序 您可以设置 Numbe
  • Pharo 中的彩色窗口主题?

    如何在 Pharo 中切换到彩色窗口主题 不确定你指的是哪个主题 但你尝试过吗 世界菜单 gt 系统 gt 设置 gt 外观 gt 形态 gt 用户界面主题 选择框将让您选择窗口颜色主题
  • Git "git config --global user.name" 为什么存在这个选项?

    Git 初学者警报 我有一个基本问题 为什么 GIT 允许更改用户名作为配置选项 git config global user name trojan 这个选项是否会为提交者冒充并在历史 日志中造成混乱打开大门 为什么不像从用于连接 GIT