我有一个git仓库,里面有大约1000个提交,我有一个JSON文件,我知道这个文件在仓库中的路径。
这是我的裸文件,我们称之为person.json
。
{
"name": "Thomas",
"age": 30
}
我知道在git历史中的某个时候,这个文件存在于git仓库中。它的相对路径是./people/person.json
,永远不会改变。
鉴于这三件事:
REPO_URL
- 本地
person.json
文件 - 路径
./people/person.json
我的目标是输出所有的提交哈希,其中文件person.json
在repo中准确地出现/匹配。
显而易见的手动解决方案是在repo中循环所有提交,并在我拥有的文件和文件应该在哪里之间进行校验和匹配。这是可能的,但对于许多文件来说需要很长时间。
有没有一些git原生的方法可以做到这一点?
2条答案
按热度按时间oxf4rvwz1#
这是一个简单的本地操作,在一个像样的盒子上(不确定Windows),在你的回购上只需要很短的时间。所以,获取文件的哈希值....就像这样:
在我的情况下:
你取一些-hash-id,然后这样做:
就是这样
t8e9dugd2#
我知道你要求原生的git解决方案,但我来到这里寻找任何答案,发现跟踪文件更改的日志并进行外部校验和更快,但这是较小的文件,更改频率较低:
其中,
git log sha1..sha1
是查看结果的一种方式。