如何使用go-git签出新的本地分支? [英] How to checkout a new local branch using go-git?

查看:56
本文介绍了如何使用go-git签出新的本地分支?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试使用工作树结帐时;它不起作用,代码返回错误

When i try to use worktree checkout; it doesn't work and the code returns error

err = worktree.Checkout(&git.CheckoutOptions{
    Create: true,
    Branch: "main",
})
if err != nil {
    log.Fatal("Cannot create 'main' branch\n" + err.Error())
}

输出:

[FATA] Cannot create 'main' branch
reference not found

使用时出现相同的错误

repository.CreateBranch(&config.Branch{
    Name: "main",
})

推荐答案

GitHub即将重命名<从code> master 到 main ,Git存储库的默认分支(无论是否在GitHub上)目前仍为 master .

所以先尝试:

err = worktree.Checkout(&git.CheckoutOptions{
    Create: true,
    Branch: "master",
})

但是,如果目标是创建一个新分支,请确保存储库已初始化或已签出到有效分支.
例如,请参见 repository_test.go

But if the goal is to create a new branch, make sure the repo is either initialized or already checked out to a valid branch.
For example, see repository_test.go

    r, _ := Init(memory.NewStorage(), nil)
    testBranch := &config.Branch{
        Name:   "foo",
        Remote: "origin",
        Merge:  "refs/heads/foo",
    }
    err := r.CreateBranch(testBranch)

这篇关于如何使用go-git签出新的本地分支?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆