2

我正在尝试通过 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 创建对提交的引用?

4

2 回答 2

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
...
于 2012-06-01T10:33:15.247 回答
0

我对砂砾了解不多(实际上一无所知)。我会在常规 git 中创建一个标签。然后找到它在 .git 文件夹中的位置。现在搜索砂砾源代码以了解该路径的用途。它应该引导你找到你可以在砂砾中使用的东西。

于 2012-03-16T02:53:59.393 回答