Git - 从 SHA1 查找文件名

2023-12-14

我将一个文件添加到索引中:

git add somefile.txt

然后我通过以下方式获取了该文件的 SHA1:

git hash-object somefile.txt

我现在有一个 SHA1,我想使用 SHA1 检索索引中对象的文件名。

git show 5a5bf28dcd7944991944cc5076c7525439830122

该命令返回文件内容,但不返回文件名。

如何从 SHA1 获取完整文件名和路径?


git 中没有这种直接映射,因为文件名是包含该文件的树对象的一部分,而不是作为文件内容的 blob 对象的一部分。

从 SHA1 哈希中检索文件名并不是一个常见的操作,因此也许您可以扩展它的实际用例?

如果您正在查看当前文件(即 HEAD 提交),您可以尝试以下操作。

git ls-tree -r HEAD | grep <SHA1>

如果您想查找以前提交中的内容,您需要执行类似这样的操作。

git rev-list <commit-list> | \
xargs -n1 -iX sh -c "git ls-tree -r X | grep <SHA1> && echo X"
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Git - 从 SHA1 查找文件名 的相关文章

  • 为什么 git-svn 应该积极搜索旧历史?

    当我运行 git svn clone s 时发生了一些奇怪的事情 尽管以下信息告诉我们不要惊慌 但我想知道为什么会出现这种 svn 错误 为什么这个路径不存在 是被别人删除了吗 如果是 为什么 git svn 应该积极搜索旧历史记录 Ini
  • 如何让 Gitlab 运行程序在成功构建时将代码合并到分支中

    嗯 标题几乎是不言自明的 总之 如果构建成功 我希望将一个分支 即开发 合并到另一个分支 即生产 我尝试了 jakub kania 解决方案 但我总是得到id rsa invalid format 我认为 gitlab 秘密变量以某种方式被
  • SSL 适用于浏览器、wget 和curl,但不适用于 git

    我有一个网站 用于托管 redmine 和几个 git 存储库 这非常适合 http 但我无法使用 https 进行克隆 即 git clone http mysite com git test git 工作正常 但是 git clone
  • TortoiseGit - 更改默认合并消息

    系统描述 Windows 7的 git版本2 10 1 windows 1 乌龟Git 2 3 0 0 I want 合并提交消息在不同的情况下有所不同fully自动方式 no manual amend Summary 在windows上
  • 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时
  • 如何恢复已删除的远程分支

    我们的远程主分支被删除 我有主存储库的本地副本 但它已经过时了 我可以通过将最后一个已知的提交哈希值插入 URL 来查看 github 中的分支 但未能成功恢复它 我尝试了几个步骤来恢复它 git reset hard 16deddc05c
  • 检查 Git 中是否需要 pull

    如何检查远程存储库是否已更改并且需要拉取 现在我使用这个简单的脚本 git pull dry run grep q v Already up to date changed 1 但它比较重 有没有更好的办法 理想的解决方案是检查所有远程分支
  • Smartgit:自动插入提交消息

    有没有办法使用钩子脚本在 Smartgit 中自动插入提交消息 重击 如果用户提交了他的更改 我想预加载提交消息字段 我没有看到任何SmartGit配置 http www syntevo com smartgit documentation
  • VS Code 在交互式变基期间不会等待我 [重复]

    这个问题在这里已经有答案了 如果我使用交互式变基git rebase i使用为 Git 配置的默认编辑器 一切都运行良好 如果我在我的全局中添加以下内容 gitconfig core editor C Program Files x86 M
  • 删除 Xcode 项目的源代码控制

    我在 Xcode 项目上使用源代码控制已经有一段时间了 但现在我不想使用源代码控制 如何从 Xcode 中的项目中删除源代码控制 有三种方法 方法 1 将禁用所有项目的源代码管理 方法 2 将删除所有项目的单个存储库的链接 方法 3 将删除
  • git am 和 git apply 有什么区别?

    Both git am https git scm com docs git am and git apply https git scm com docs git apply可用于应用补丁 看起来git am自动提交 而git apply
  • 在 C# 中使用 SHA1 算法进行哈希处理

    我想哈希给定byte 数组与使用SHA1算法与使用SHA1Managed The byte 哈希值将来自单元测试 预期的哈希值是0d71ee4472658cd5874c5578410a9d8611fc9aef 区分大小写 我怎样才能实现这个
  • 设置 git 别名,但调用它会给出“找不到命令”

    我想在 git 中设置一个别名来计算存储库中的总行数 因此我进入 Git Bash 并输入以下内容 git config global alias linecount ls files z xargs 0 wc l 我输入命令后 没有出现错
  • Git 忽略本地文件更改

    我都尝试过 git update index assume unchanged config myconfig and editing git info exclude并添加config myconfig 然而 当我执行 git pull
  • gitbranch --merged 使用管道命令

    有没有办法达到相当于 git branch merged 使用 git 管道命令 我知道有类似的命令git for each ref它为您提供提交哈希值及其相应的引用名称 是否有一个命令可以判断某个提交是否可以从另一个提交访问 这基本上就是
  • 使用 svn 元数据克隆 git-svn 存储库

    我已经克隆了我的主存储库git svn clone svn url trunk stdlayout 现在我想使用 svn 元数据克隆存储库 这样我就能够git svn rebase它到主服务器 注意 我不想在两个之间推送提交git svn克
  • git checkout 后,Git 丢失了本地提交文件

    我从另一个分支切换 这样我就可以进行推送 在进行结账时 文件在我的编辑器中打开 这可能导致权限被拒绝错误 git 丢失了我的所有文件吗 我不知道如何让他们回来 这就是我所做的 丢失的文件有js Messages目录templates Mes
  • 当更改提交给子模块时,如何触发詹金斯中的构建?

    我们有一个带有外部子模块的 git 存储库 当子模块更改时 我们必须触发构建 您能否向我们建议如何使用 xtrigger 插件轮询子模块上的更改 使用 shell 脚本或监视文件还是其他更好 有关我们构建过程的更多信息 步骤1 使用子模块克
  • Github 操作错误:bash:第 3 行:npm:找不到命令

    我正在尝试通过 ssh 将 Nodejs 应用程序从 github 部署到远程 ubuntu 服务器 这是我的 main yml name Node Github CI on push branches master jobs deploy
  • 使用 cron 作业推送到 GitHub - 权限被拒绝(公钥)

    我已经创建了一个 SSH 密钥 如下官方教程 https help github com articles generating ssh keys 00 将其添加到 GitHub 并创建一个 Bash 脚本 用于提交单个文件并将其推送到我在

随机推荐

  • 导入函数并使用“this”获取道具:“TypeError:无法读取未定义的属性‘renderElapsedString’”

    我是 React 新手 正在从 FullStackReact 书中创建一个时间记录应用程序 但使用 ES6 扩展 模块而不是 Create Class 话虽如此 我收到了这个错误 而且我不知道发生了什么 类型错误 无法读取未定义的属性 re
  • 在反应式表单上使用正则表达式进行 Angular 7 电子邮件验证

    在 Angular 上 我尝试使用以下正则表达式验证电子邮件 lt gt s lt gt s 0 9 1 3 0 9 1 3 0 9 1 3 0 9 1 3 a zA Z 0 9 a zA Z 2 就像下面这样 createGroupFor
  • 在 C++ 中处理许多进程的中央数据缓冲区

    我遇到了以下问题 无法决定如何继续 我有一堂课 Reader 每1 T秒获取一块数据 实际上数据来自视频帧 每秒30帧 这些块将被传递给多个对象 Detectors处理块并输出决策 然而 每个检测器在做出决定之前需要读取的块数量各不相同 例
  • 按组进行累加[重复]

    这个问题在这里已经有答案了 假设数据看起来像 group1 group2 num A sg 1 A sh 2 A sg 4 B at 3 B al 7 a lt cumsum data num 1 3 7 10 17 我需要一些团体积累的东
  • Android - 构建项目时出现多个错误

    我在构建项目时遇到这些错误 无法解决 firebase core 无法解决 multidex 无法解决 播放服务广告 无法解决 play services auth 无法解决 firebase auth license 无法解决 常见 请检
  • 黑莓录音示例代码

    有谁知道有一个好的存储库可以获取 BlackBerry 的示例代码吗 具体来说 可以帮助我学习录制音频的机制的示例 甚至可能对其进行采样并对其进行一些动态信号处理 我想读取传入的音频 如果需要的话可以逐个采样 然后对其进行处理以产生所需的结
  • 为什么 JavaScript fetch API 的响应对象是一个承诺?

    当使用 JavaScript fetch API 从服务器请求时 您必须执行类似的操作 fetch API then response gt response json catch err gt console log err Here r
  • 按下 UI 按钮时持续运行代码

    我正在做一个平台游戏在 Unity 中 球的移动方式为三个按钮 向右移 向左移动 jump 我已经拥有现在可以使用的所有功能 但要移动角色我需要继续向按钮发送垃圾邮件 而不是像我想要的那样按住它 我尝试了在教程中找到的几种方法 但是由于我仍
  • 从 testcafe 中打开的第 N 个模式中选择“确定”按钮

    我在测试中打开两个模态 我希望能够单击第二个模态中的 确定 按钮 下面 html 中的第二个选定元素 我当前的代码是 import waitForReact from testcafe react selectors import Sele
  • shinyjs - setBookmarkExclude 用于延迟 ID

    我试图从 Shiny 的反应式书签上下文中排除 ShinyJS 延迟 我看到 URL 中的延迟 ID 是自动生成的 并且始终不同 delay ad190e10123bd97f960fed7a8a9e6fde 3000 我试图通过正则表达式排
  • JoyGetPosEx 在 C# 中返回 165

    我尝试用 C 读取 JoyStick 中的数据 只要我使用 jeyGetPos 就可以正常工作 但我需要使用joyGetPosEx 因为它提供了更多数据 例如我需要的操纵杆的旋转 class JoyStick JOYINFO pji JOY
  • php:从 html 获取纯文本 - simplehtmldom 或 php strip_tags?

    我正在考虑从 html 获取纯文本 我应该选择哪一个 php条带标签 or 简单的htmldom明文提取 simplehtmldom 的优点之一是支持无效 html 这本身就足够了吗 strip tags就足够了
  • 合并哈希数组

    我有两个数组 每个数组都包含带有属性哈希的数组 Array1 gt attribute 1 A attribute 2 B attribute 1 A attribute 4 B Array2 gt attribute 3 C attrib
  • 同步安装后节点找不到某些模块

    我有一个在启动时同步安装非内置模块的脚本 如下所示 const cp require child process function requireOrInstall module try require resolve module cat
  • 单例模式 - 默认属性

    我一直在研究设置类中使用的单例模式 以下是我的项目 AccessTest 的 Settings Designer cs 的相关代码 internal sealed partial class Settings global System C
  • 如何检查 IOException 是否为 Not-Enough-Disk-Space-Exception 类型?

    我怎样才能检查是否IOException是 磁盘空间不足 异常类型吗 目前 我检查该消息是否与 磁盘空间不足 之类的内容匹配 但我知道如果操作系统语言不是英语 这将不起作用 您需要检查HResult并测试ERROR DISK FULL 0x
  • 无需轮询即可订阅 MySQL 数据库中的更改

    我有一个由不同应用程序更新的 MySQL 数据库 我想从我的 Node js 服务器订阅该数据库的更改 是否可以监视数据库的任何更新 而无需长时间轮询所有行 列以了解其值的任何更改 我见过的一种可能的解决方案是使用 Redis 订阅数据库以
  • 如何安装边缘导轨?

    如何安装最新的 未发布的 Rails 版本 即边缘导轨 已遵循一些建议 但似乎仍然有版本 2 3 5 你所要做的就是跑rake rails freeze edge在你的项目中 如果您还没有开始项目 另一个选择是 mkdir p foo ve
  • 如何在数据框的每一行上执行函数,并仅将输出的一个元素作为新列插入到该行中

    对两个值进行精确二项式测试很容易 但如果想对一大堆成功次数和试验次数进行测试会发生什么 我创建了一个包含测试敏感性 研究中潜在参与者数量的数据框 然后对于每一行 我计算了成功的可能性 这是代码 sens lt seq from 1 to 5
  • Git - 从 SHA1 查找文件名

    我将一个文件添加到索引中 git add somefile txt 然后我通过以下方式获取了该文件的 SHA1 git hash object somefile txt 我现在有一个 SHA1 我想使用 SHA1 检索索引中对象的文件名 g