正在删除go git中的本地分支:未找到分支

正在删除go git中的本地分支:未找到分支,go,go-git,Go,Go Git,我试图使用go git删除本地分支,但运行时出现错误未找到分支 branch := "refs/heads/template/test" err = repo.DeleteBranch(branch) 或 仅使用分支的名称(模板/test)也不起作用。分支包含在分支列表中。这个 refs, err := repo.Branches() err = refs.ForEach(func(ref *plumbing.Reference) error { fmt.Println(ref)

我试图使用go git删除本地分支,但运行时出现错误
未找到分支

branch := "refs/heads/template/test"
err = repo.DeleteBranch(branch)

仅使用分支的名称(
模板/test
)也不起作用。分支包含在分支列表中。这个

refs, err := repo.Branches()
err = refs.ForEach(func(ref *plumbing.Reference) error {
    fmt.Println(ref)
    return nil
})
提供以下输出:

f2d93bb67ced13936dbbbbfb44502abd42e7df13 refs/heads/global
df46ab083f17051afd6ca20e3ea4bfe01aedbb37 refs/heads/template/test
141f45305380aa0dc9f6802512ea76c5d48a87a1 refs/heads/template/test2
如何删除它

更新: 我检查了DeleteBranch函数,它如下所示:

// DeleteBranch delete a Branch from the repository and delete the config
func (r *Repository) DeleteBranch(name string) error {
    cfg, err := r.Storer.Config()
    if err != nil {
        return err
    }

    if _, ok := cfg.Branches[name]; !ok {
        return ErrBranchNotFound
    }

    delete(cfg.Branches, name)
    return r.Storer.SetConfig(cfg)
}


然后我创建了
cfg:=repo.Storer.Config()
,并检查了
cfg.branchs
包含的内容。令人惊讶的是,此映射只有以下元素:
和{global origin refs/heads/global 0xc0007fbf80}
。因此无法删除其他分支,因为在此配置中找不到它们

我想你被方法名
DeleteBranch
绊倒了,就像我被方法名
CreateBranch
绊倒一样;请参阅:据我所知,这两个函数本身对分支(即refs)都没有任何作用。他们只是操纵
.git/config
文件中的条目。因此,我完全无法理解为什么它们是
git.Repository
的方法,而不是
config.config
。我想你被方法名
DeleteBranch
绊倒了,就像我被方法名
CreateBranch
绊倒一样;请参阅:据我所知,这两个函数本身对分支(即refs)都没有任何作用。他们只是操纵
.git/config
文件中的条目。因此,我完全无法理解为什么它们是
git.Repository
的方法,而不是
config.config
// DeleteBranch delete a Branch from the repository and delete the config
func (r *Repository) DeleteBranch(name string) error {
    cfg, err := r.Storer.Config()
    if err != nil {
        return err
    }

    if _, ok := cfg.Branches[name]; !ok {
        return ErrBranchNotFound
    }

    delete(cfg.Branches, name)
    return r.Storer.SetConfig(cfg)