如何使用BLOB SHA1查找提交消息



我是GIT的初学者,并试图对Bit Bucket对象进行一些验证。

我正在使用以下脚本查找分支中的所有对象:git-ls-tree-r分支名称

这将为我提供对象名称以及blob SHA1信息。我想从blob中查找提交消息。我们在提交消息中使用jira编号,我想从消息中提取jitrano。

问题是,该文件被多次提交以解决其他对象的合并冲突,因此,当我试图从SHA1中找到commitID时,它会给我最新的commitID,这是错误的,因为jira与特定对象没有关联。

如果我在远程repo中看到对象,我仍然可以看到正确的提交消息(jira no(,从而希望从目标分支检索对象和相应的提交消息。请建议是否有办法做到这一点。

另一个查询是解决合并冲突的方法。如果与一个对象发生冲突,我们通常会提取目标分支的全部内容,然后解决冲突对象。因此,未修改的对象也将再次提交。任何简单的方法,只拉冲突的对象。

感谢您的帮助

嗯。。。问题是,多个修订版中可能存在一个blob。。。。但你可以尝试使用伪1线性:

git log --all --pretty=%h | while read revision; do
lines=$( git ls-tree -r $revision | grep object-id | wc -l )
if [ $lines -gt 0 ]; then
# it's present here
git show --summary --pretty="%h %s" $revision
fi
done

object-id替换为所需的blob id。应该可以。

最新更新