Golang中git集成问题求助
Golang中git集成问题求助 你好,
我进行了编辑,因为帖子包含了我电脑中的一些文件信息。
4 回复
谢谢Curtis…
你知道问题出在哪里吗?在Gin路由仓库里把Gonic打成了Tonic,真是糊涂!
GO 1.12(在 GOPATH/src 目录下使用 SSH 证书进行 Git 操作时) 致命错误:无法读取 ‘https://github.com’ 的用户名:终端提示已禁用
git ls-remote -q REMOVED LINKgin-tonic/gin in /home/kevin/Code/Golang/pkg/mod/cache/vcs/0d10ab509f5acbc17de3992db710e3921350da404d7e3aa296c81405c7e5ea48: exit status 128:
在我看来,问题似乎出在你的 SSH 证书配置上。Git 身份验证失败,但如果你访问该仓库的位置,它要么不存在要么是私有的,因此你需要解决凭据问题。
很抱歉,您的问题似乎不完整,没有提供具体的Git集成问题描述。如果您能提供更多细节,比如遇到的错误信息、相关代码片段或具体的使用场景,我将很乐意帮助您解决Golang中的Git集成问题。
一般来说,在Go中集成Git功能可以通过以下几种方式:
- 使用
go-git库(一个纯Go实现的Git库)
package main
import (
"fmt"
"log"
"github.com/go-git/go-git/v5"
)
func main() {
// 克隆仓库
_, err := git.PlainClone("/tmp/foo", false, &git.CloneOptions{
URL: "https://github.com/go-git/go-git",
Progress: os.Stdout,
})
if err != nil {
log.Fatal(err)
}
fmt.Println("Repository cloned successfully")
}
- 使用
src-d/go-git库
package main
import (
"fmt"
"log"
"gopkg.in/src-d/go-git.v4"
)
func main() {
// 打开本地仓库
r, err := git.PlainOpen(".")
if err != nil {
log.Fatal(err)
}
// 获取工作目录
w, err := r.Worktree()
if err != nil {
log.Fatal(err)
}
// 执行git status
status, err := w.Status()
if err != nil {
log.Fatal(err)
}
fmt.Println("Git status:", status)
}
- 执行外部Git命令
package main
import (
"fmt"
"os/exec"
"strings"
)
func main() {
// 执行git log命令
cmd := exec.Command("git", "log", "--oneline", "-5")
output, err := cmd.Output()
if err != nil {
fmt.Printf("Error: %v\n", err)
return
}
fmt.Println("Recent commits:")
fmt.Println(strings.TrimSpace(string(output)))
}
请补充您遇到的具体问题,我将为您提供更准确的解决方案。

