【问题标题】:Extract the tree sha1 from a git commit从 git commit 中提取树 sha1
【发布时间】:2014-01-03 22:41:25
【问题描述】:

我正在寻找从 git 提交中提取顶级树的 sha1,通常来自分支提示。

有没有比可移植命令序列更有效的

git cat-file -p master | egrep -e "^tree [a-f0-9]{40}$" | head -1 | cut -c6-45?

这里是master 分支的顶级树。这需要跨 Mysgit 以及常规 Linux 移植。对象 sha1 值将被分配给一个变量以供进一步处理。

git cat-file 之后需要通过三个额外的命令确实感觉过分了。

【问题讨论】:

    标签: git shell


    【解决方案1】:

    git checkout master 后跟 git rev-parse HEAD^{tree} 怎么样?

    【讨论】:

    • 我应该提到的目的是避免检查该树,以便时间戳不变并消除 I/O。也就是说我需要检查git rev-parse master^{tree}等。
    • 是的,我需要的是 git rev-parse <branch>^{tree} 命令,其中 也可以是提交 sha1 等。
    猜你喜欢
    • 1970-01-01
    • 2015-09-18
    • 2014-03-11
    • 2017-01-05
    • 1970-01-01
    • 2015-09-12
    • 2016-12-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多