搜索引用给定对象的提交

时间:2010-08-07 20:05:53

标签: git hash git-log

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

我知道该文件位于仓库中,因为git show $(git hash-object $the_file)有效。

此时我并不需要解决此示例问题,我更希望了解如何导航git的数据结构。

4 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

感谢@Jefromi指出副本。由于这个问题没有作为重复被关闭,我将在另一个线程上引用accepted answer来回答它,其中包含一个看起来正如我想要的perl脚本,更多或者效率最低。

答案 2 :(得分:0)

git log <the file>怎么样?

答案 3 :(得分:0)

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