我正在尝试通过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创建对提交的引用?
答案 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源代码以使用该路径。它应该引导你在砂砾中使用它。