在 git 中查找文件的第一次提交

2024-04-17

情况:我有一个来自 github 项目的 tar.gz 版本,但想弄清楚这是从哪个提交中获取的。它似乎没有被标记,或者从提交消息本身来看是显而易见的。

所以我可以计算文件的 sha1,但想知道这些文件属于哪个提交?

召唤 git 向导!


由于 git 存储的哈希不仅仅包括文件内容(理论上,哈希冲突无论如何都会发生),为了真正确定您拥有正确的文件版本,您需要比较内容。

for rev in $(git log --format=%H -- /path/to/file); do
   git diff --quiet $x:/path/to/file my-current-file;
   if [[ $? -eq 0 ]]; then
      echo $x;
   fi
done

英语:以相反的顺序迭代更改文件的修订版本。对于每个此类修订,将文件版本与树外文件进行比较。如果两个文件相同,则打印修订哈希值。

如果你想这样做整个压缩包,您可以对整个树而不是单个文件执行相同但不同的操作(并省略文件路径作为参数git log) - 使用您喜欢的任何容忍差异选项。

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

在 git 中查找文件的第一次提交 的相关文章

  • 为什么我无法创建/签出该分支?

    我正在尝试创建本地 Git 分支 但它不起作用 以下是我正在使用的命令 tablet edit11 git checkout b edit 11 Switched to a new branch edit 11 tablet edit11
  • git Push over sshfs 失败,并显示“关闭 sha1 文件时出错:错误的文件描述符”

    我们使用 sshfs 通过 SSH 安装文件系统 并将其用作 git 存储库协作的远程存储 Mac OSX 10 6 6 到 RHEL 3 服务器 SSHFS 版本 2 2 MacFUSE SSHFS 2 2 0 MacFUSE 库版本 F
  • `git ls-files -s` 输出中不同字段的含义是什么?

    在 Git 中 命令返回的典型结果行git ls files s好像 100755 be2c2e9b0966253096472d4b482c458bc892e493 0 gitignore 这些字段是什么意思 不用再犹豫了git ls fi
  • 格里特:! [远程拒绝] HEAD -> refs/publish/master (没有新的更改)

    我做了一些更改 提交了它们并将分支推送到 Gerrit git push gerrit 现在我的更改没有出现在 Gerrit 中 我认为这是因为我手动推送更改而不是使用git 审查 https github com openstack in
  • 如何合并两个连续的 git 存储库

    我有一个相当独特的情况 我有一个名为 Project1 的存储库 我在其中工作了一些时间 几个月 一年后 我创建了存储库 Project1 Again 从 Project1 停止的地方开始 现在 我希望修订历史记录是连续的 因此我希望它们合
  • 在 Windows 7 上的 Sourcetree 中比较 Word docx 文件

    我一直在尝试获取在 Windows 7 上的 Sourcetree 中工作的 Word docx 文件的文本差异 我已按照此处的说明进行操作将 Microsoft Word 与 git 结合使用 http blog martinfenner
  • git 认为文件已更改

    我在一台机器上对一个项目做了一些工作 然后推送到 github 在另一台机器上克隆并做了一些工作 然后推送 然后我回到第一台机器并做了一个pull 现在 第一台机器认为项目中最初的所有文件都已更改 我试过了 git checkout f a
  • 如何克隆特定的 Git 标签

    From git clone 1 手册页 http git scm com docs git clone branch还可以在结果存储库中的该提交处获取标签并分离 HEAD 我试过 git clone branch
  • 如何使用 Git 跟踪目录而不是文件?

    我最近开始使用 Git 但只有一件事遇到了麻烦 如何在不跟踪目录内容的情况下跟踪目录 例如 我正在开发的网站允许上传 我想跟踪上传目录 以便在分支等时创建它 但显然不是其中的文件 在开发分支中的测试文件或主控中的真实文件 在我的 gitig
  • 带有 git Remote 的 Gem 文件在 Heroku 推送上失败

    我的 gemfile 中有以下行 gem client side validations git gt email protected cdn cgi l email protection Dakuan client side valida
  • Git difftool 未启动外部 DiffMerge 程序

    我一直遵循 戴夫的博客条目 http www davesquared net 2009 05 setting up git difftool on windows html 链接在此answer https stackoverflow co
  • Android 存储库初始化失败

    我想我非常仔细地遵循该网站的说明 http source android com source downloading html http source android com source downloading html 但是当我尝试这
  • git reflog 和 log 有什么区别?

    手册页说 log 显示提交日志 reflog 管理 reflog 信息 reflog 信息到底是什么 它有哪些日志没有的信息 日志看起来更详细 git log显示当前的 HEAD 及其祖先 也就是说 它打印提交 HEAD 指向的提交 然后打
  • 仅使用 Git grep 的文件名

    我只想查看文本中包含特定单词的不同文件 current directory git grep word 显示文件中具有匹配单词的每一行 所以我尝试了这个 current directory git grep word files with
  • `git push` -- 没有输出,什么也没有发生

    touch test git add test git commit m test git push u origin master 这奏效了 该文件已上传到存储库 rm test cp R website website git rm t
  • 如何减少 Bitbucket 上的 git repo 大小?

    我的问题摘要 在我向两个现有文件添加了几百个字节后 我在 Bitbucket 上的一个私人存储库的大小突然增加了一倍多 该存储库现在超过 2GB 这导致 Bitbucket 将其置于只读模式 因为它处于只读模式 所以我无法推送会减少存储库大
  • 除非我在项目目录中,否则 Git 不会显示日志

    我正在尝试打电话git log当我在不同的目录中时 我经过的位置 git is git log Users Leica proj1 但它说 不是 git repo 如果我cd进入这个目录 就可以正常工作了 cd Users Leica Pr
  • Phonegap使用命令行工具添加插件

    我是phonegap的新手 我按照phonegap官方网站中定义的步骤使用命令行工具创建项目 nodejs 我成功创建项目并添加平台 但是 当我尝试添加插件时出现以下错误 命令 cordova plugin add https git wi
  • MSysGit 与 Windows 版 Git

    我无法确定MSysGit 和 Windows 版 Git 之间的区别 http msysgit github com 它们有何不同 为什么我会选择其中之一而不是另一个 它们不是同一个东西吗 On http msysgit github co
  • 我应该把 .gitignore 放在哪里才能影响所有项目?

    我应该在哪里放置一个 gitignore文件以便我的所有项目都使用这些设置 我尝试了各种文件夹 只有将其放入项目文件夹中才能使其正常工作 但是设置 当然 仅应用于该项目 而不是我的其他项目 git 包含一个 全局 配置选项 可以告诉它在启动

随机推荐

  • 进程退出的问题

    假设我有一个 ID 为 1234 的进程 该进程在我的应用程序运行之前运行 我有这个代码 Process app Process GetProcessById 1234 MessageBox Show app MainWindowTitle
  • WINAPI_FAMILY_PARTITION 有何作用?

    我正在阅读头文件的定义winapifamily h并注意以下定义WINAPI FAMILY PARTITION define WINAPI FAMILY PARTITION Partitions Partitions 该宏的一般用法 作为示
  • 我们可以在javascript中将对象分配给cookie吗?

    有谁知道是否可以在javascript中将一个对象分配给cookies 如果是的话 我们该怎么做呢 如果您可以将对象序列化为其规范的字符串表示形式 并且可以将其从所述字符串表示形式反序列化回其对象形式 那么您可以将其放入 cookie 中
  • 从空整数到逗号列表中的指针的转换

    我知道在我们的现代世界中 NULL 和 0 并不是指针操作的最佳实践 根据 cppreference 指针转换 空指针常量 参见 NULL 可以是 转换为任意指针类型 结果为空指针 该类型的值 这种转换 称为空指针转换 允许作为单个转换转换
  • Activator.CreateInstance 找不到构造函数(MissingMethodException)

    我有一个具有以下构造函数的类 public DelayCompositeDesigner DelayComposite CompositeObject InitializeComponent compositeObject Composit
  • 如果 URL 以 https:// 开头,则不会显示网站图标

    我在使用 favicon ico 时遇到一个问题 这是我的链接相关代码 已包含在标头部分中 问题是 如果 url 以 http 开头 我可以在所有浏览器中查看该图标 当地址以 https 开头时 图标不会在 IE 浏览器中显示 有什么我需要
  • OpenGL固定功能着色器实现[关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有任何包装器可以在 OpenGL ES 2 0 之上模拟 OpenGL ES 1 1 API 我进
  • iOS8 - 模拟器 - 如何模拟位置

    我的应用程序跟踪您的位置 对于 iOS8 我必须改变它启动位置服务的方式 我得到了这个工作 self locationManager requestAlwaysAuthorization 并将 NSLocationAlwaysUsageDe
  • 从当前日期减去月份 sql

    我正在尝试从今天减去日期 获取 1 个月前直到永远的报告 到目前为止我已经尝试过 DATE SUB NOW INTERVAL 1 MONTH 这是上下文 SELECT contracts currency ROUND SUM CASE WH
  • 如何将 Google Analytics 跟踪 ID 添加到 GitHub Pages

    可能是一个简单的问题 但我现在对添加充满疑问谷歌分析跟踪ID to GitHub 页面 我正在使用 GitHub 自动页面生成器来创建我的 GitHub 页面 但它要求提供 Google Analytics 跟踪 ID 我尝试注册 Goog
  • 我正在尝试导入 GoogleAPIClient 或 GoogleAPIClientForREST

    我正在努力追随谷歌的教程 https developers google com drive ios quickstart ver swift制作他们的 QuickStart 应用程序来学习如何使用 Swift 进行 API 调用 我完全按
  • asp:SqlDataSource 到数据集项

    我的aspx页面上有一个asp SqlDataSource ID SqlDataSource1 工具 我想要在后面的c Sharp代码中做的就是传输数据源返回的记录并将它们放入DataSet中 以便我可以添加分页我的页面 我该怎么做 到目前
  • 如何显示图像

    我尝试使用 IPython display 与以下代码 from IPython display import display Image display Image filename MyImage png 我还尝试使用 matplotl
  • 匹配具有相同发音的单词elasticsearch

    我想匹配拼写不同但发音相同的单词 如 雄 与 雄 平面 与 平 我们可以在elasticsearch中进行这样的匹配吗 您可以使用语音分析插件 https github com elastic elasticsearch analysis
  • 如何完全禁用 UITextView 的滚动?

    我正在使用 UITextView 为 iPad 开发一个简单的文本编辑应用程序 我在使用 UIScrollView 和 UITextView 时总是遇到一些问题 我想我对这两个人的期望太高了 当我将 myTextView text 设置为另
  • 为什么链接时会出现多重定义错误?

    我使用这两个文件here https raw github com elanthis easylogger master easylogger h and here https raw github com elanthis easylog
  • 如何在Java中从字符串中提取多个整数? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我得到了一系列像这样的字符串 123
  • 如何解析 Perl 中的符号链接?

    我有一个象征性的名字java or jre or jre1 5 or jre1 6 or java1 5 or java1 6它将指向相应的目录 考虑到第一个实例 它看起来像 java gt usr java jdk1 5 x x 我的目标
  • NeDB中如何实现持久化存储?

    我在 node webkit 中尝试了 NeDB 它在内存数据上运行良好 但无法存储在持久存储中 绝对没有 node webkit 或 nedb 专家 但这就是我所做的并且它有效 正如 mvanderw 在评论中已经提到的 一定要确保检查自
  • 在 git 中查找文件的第一次提交

    情况 我有一个来自 github 项目的 tar gz 版本 但想弄清楚这是从哪个提交中获取的 它似乎没有被标记 或者从提交消息本身来看是显而易见的 所以我可以计算文件的 sha1 但想知道这些文件属于哪个提交 召唤 git 向导 由于 g