如何在git2go中修改特定提交的特定提交消息?

时间:2018-03-27 19:56:26

标签: git go

以下是我的尝试: 通过git log迭代找到我想要修改的特定提交。接下来我修改提交消息。现在我想将此消息修改为该特定提交。代码段如下:

所以我的问题是这段代码不修改提交消息。不知道我哪里错了。由于Amend()将树作为参数之一,我假设特定的提交消息应该被推送到git。

err = odb.ForEach(func(oid *git.Oid) error {
    obj, err := repo.Lookup(oid)
    if err != nil {
        return err
    }

    if obj.Type() != git.ObjectCommit {
        return nil
    }

    commit, err := obj.AsCommit()
    if err != nil {
        return err
    }
    tree, err := commit.Tree()
    if err != nil {
        return err
    } 
    message := strings.Replace(commit.Message(), "\n", " ", -1)
    if strings.Contains(message, key) {
        message := strings.Replace(commit.Message(), key, new_key, -1)
        repo, err := commit.Amend("", signature, signature, message, tree)
        remote, err = repo.Remotes.Create("origin", repo.Path())
        head, err := repo.Head()
        branchName := head.Name()
        if err := remote.Push([]string{branchName}, &git.PushOptions{}); err != nil {
            return err
        }

0 个答案:

没有答案