用Grit创建标签

时间:2012-03-16 02:33:48

标签: ruby git grit

我正在尝试通过Grit在我的git存储库中创建一个标记,但我不确定该库是否支持引用的标记。创建这样的标签很容易:

Grit::Tag.create_tag_object(repo, params, actor)

但这只会创建一个轻量级标签。要获得引用标记,我还需要为标记创建引用,但update_ref的实现如下所示:

def update_ref(head, commit_sha)
  return nil if !commit_sha || (commit_sha.size != 40)
  self.git.fs_write("refs/heads/#{head}", commit_sha)
  commit_sha
end

...这意味着我只能创建头部引用,而不是标记引用。 Ref或Tag类中没有任何内容可以执行任何操作。

有没有人知道如何通过Grit创建对提交的引用?

2 个答案:

答案 0 :(得分:3)

我创建了一个链接到提交的新标记,如下所示:

log = @repo.git.tag( { 'f' => true }, tag_name, commit_sha )

得到了:

Updated tag 'new_tag' (was 0000000)
$ git tag
...
new_tag
...
$ git show new_tag
commit e74b99a0ff706993e200939ee00079182f75ec29
...

答案 1 :(得分:0)

我对砂砾不太了解(实际上没什么)。我会在常规git中制作一个标签。然后找到.git文件夹中的位置。现在搜索grit源代码以使用该路径。它应该引导你在砂砾中使用它。