我的系统上安装了一个已知是git repo一部分的文件。我想找出哪个提交(重新)引入了该文件的版本,即哪个提交负责将文件置于当前状态。
我知道该文件位于仓库中,因为git show $(git hash-object $the_file)
有效。
此时我并不需要解决此示例问题,我更希望了解如何导航git的数据结构。
答案 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'中为'/')。