Node.js 如何使用礼品库获取git提交文件的内容?

Node.js 如何使用礼品库获取git提交文件的内容?,node.js,git,gift,Node.js,Git,Gift,我正在使用https://github.com/notatestuser/giftlibrary,以下是我所拥有的: gitCommit.tree().contents (err, gitTreeContents) -> console.log gitTreeContents 这为我提供了树内容,这是一个包含如下对象的数组: { repo: { path: '/mygitrepo', bare: false, dot_git: '/mygitrepo/.g

我正在使用
https://github.com/notatestuser/gift
library,以下是我所拥有的:

gitCommit.tree().contents (err, gitTreeContents) ->
  console.log gitTreeContents
这为我提供了树内容,这是一个包含如下对象的数组:

{ repo: 
   { path: '/mygitrepo',
     bare: false,
     dot_git: '/mygitrepo/.git',
     git: 
      { [Function]
        cmd: [Function],
        streamCmd: [Function],
        list_remotes: [Function],
        refs: [Function] } },
  id: 'ed38d79b10503a4e7e68910f37f387f24dedd5fa',
  name: 'address.js',
  mode: '100644' }
所以有两个问题。首先,那
id
指的是什么?这不是一个承诺,所以我想这是一个树?第二,我怎样才能看到文件在那个时间点上的样子

谢谢

  • 是的,它是一个树状ID,即给定文件系统对象的sha-1,对于普通文件,它的内容是sha-1

  • 要在给定的时间点获取对象,应首先选择适当的提交。请注意,在一个项目中,由于可能的分支,在给定的时间可能有多个使用给定名称的文件提交。因此,您应该选择一个分支,然后在此时查询该分支状态。由于分支中可能存在合并,因此可能会再次出现多个提交
  • gift
    是命令行git上的一个简单包装器。在命令行git中,您应该运行如下命令:
    git cat file blob:
    。看一看,它似乎正是你所需要的

  • 是的,它是一个树状结构,即给定文件系统对象的sha-1,如果是普通文件,则为其内容的sha-1。要在给定时间点获取对象,应首先选择适当的提交。请注意,由于分支的原因,在给定的时间可能有多个具有给定名称的文件。因此,您应该选择一个分支,然后在此时查询该分支状态。由于合并,这里可能会有多个提交。我有提交。提交的
    sha
    存储在
    gitCommit
    中。如何使用它来获取文件内容?我不熟悉
    gift
    库,但相信它是命令行
    git
    上的一个简单包装器。在命令行git中,您应该运行如下命令:
    git cat file blob:
    看一看,它似乎正是您所需要的