1

我正在使用https://github.com/notatestuser/gift图书馆,这就是我所拥有的:

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指什么?这不是提交 sha,所以我认为它是树状的?其次,我怎样才能看到文件在那个时间点的样子?

谢谢

4

1 回答 1

2
  1. 是的,它是一个树状 ID,即给定文件系统对象的 sha-1,如果是纯文件,则为其内容的 sha-1。
  2. 要在给定时间点获取对象,您应该首先选择适当的提交。请注意,在一个项目中,由于可能存在分支,在给定时间可能有多个提交具有给定名称的文件。所以你应该选择一个分支,然后查询那个时候那个分支的状态。由于分支中可能存在合并,因此可能会再次提交多个提交。
  3. gift是命令行 git 的简单包装器。在命令行 git 你应该运行这样的命令:git cat-file blob <commit-sha-1>:</path/to/file>. 看看http://github.com/notatestuser/gift/blob/master/src/blob.coffee似乎,它正是你所需要的。
于 2014-11-21T19:27:49.423 回答