2

我的系统上安装了一个文件,该文件已知是 git repo 的一部分。我想找出哪个提交(重新)引入了该文件的该版本,即哪个提交负责将文件置于当前状态。

我知道该文件在存储库中,因为git show $(git hash-object $the_file)有效。

在这一点上,我真的不需要这个示例问题的解决方案,我只是希望更多地了解如何导航 git 的数据结构。

4

4 回答 4

1

如果当前版本引入了您可以测试的特定组件(通过单元测试程序、shell 脚本等),您可以使用 git bisect 工具找到负责该组件的提交。

这是该命令的手册:http: //www.kernel.org/pub/software/scm/git/docs/git-bisect.html

于 2010-08-07T21:57:59.830 回答
1

感谢@Jefromi指出重复。由于该问题尚未作为重复问题关闭,因此我将参考另一个线程上已接受的答案来回答它,该线程包含一个似乎可以做我想要的 perl 脚本,或多或少是最佳的效率。

于 2010-08-08T03:56:09.513 回答
0

使用 获取给定文件版本的哈希git hash-object <file>,然后使用git log --raw -- <file>,并通过寻呼机(在“less”和“more”中为“/”)搜索此哈希。

于 2010-08-07T22:46:25.797 回答
0

怎么样git log <the file>

于 2010-08-07T20:08:48.683 回答