go - 如何使用 go-git 签出新的本地分支?
问题描述
当我尝试使用工作树结帐时;它不起作用并且代码返回错误
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 确实很快会重命名master
为main
,但 Git 存储库(在 GitHub 上或不在 GitHub 上)的默认分支现在仍然master
是。
所以先试试:
err = worktree.Checkout(&git.CheckoutOptions{
Create: true,
Branch: "master",
})
但如果目标是创建一个新分支,请确保 repo 已初始化或已签出到有效分支。
例如,参见repository_test.go
r, _ := Init(memory.NewStorage(), nil)
testBranch := &config.Branch{
Name: "foo",
Remote: "origin",
Merge: "refs/heads/foo",
}
err := r.CreateBranch(testBranch)
推荐阅读
- geospatial - 使用 OSMnx 的等时线
- apache-spark - Apache Zeppelin Spark - 使用 Cron 调度程序运行笔记本后找不到表
- android - ScrollView 中的 MotionLayout 未针对动画更改进行优化
- reactjs - React:如何在为输入字段使用自定义组件时显示特定通知?
- liquibase - 未使用 liquibase Api 进行回滚
- firebase - Firestore FirebaseError:缺少权限或权限不足
- three.js - 使用 uvw 将对象加载到三个.js 中
- docker - dockremap rootless:如何不使用 subid 而是使用特定用途
- sql - 删除每个用户的异常值
- java - 如何通过 JUnit 测试正确触发 KeyListener