git - go-git返回的未知状态类型

标签 git go go-git

我正在尝试使用git library获取在go-git存储库中检查的文件的状态。
因此,我正在运行以下代码片段:

    var status = git.Status{}
    var fileStatus *git.FileStatus
    fileStatus = status.File(fullPathToApp)
    fmt.Printf("%v\n", fileStatus.Staging)
    fmt.Printf("%v\n", fileStatus.Worktree)
我只得到两个被打印出来的63
63
63
就git status而言,这对应什么?
我似乎与StatusCodedocumentation没有直接关系。
顺便说一句fullPathToApp指向的文件是干净的,即已对其进行跟踪和提交。

最佳答案

我认为您需要先打开存储库和工作树

    r, err := git.PlainOpen(pathToRepo)
    if err != nil {
        log.Fatal(err)
    }

    w, err := r.Worktree()
    if err != nil {
        log.Fatal(err)
    }
之后获取状态
    ws, err := w.Status()
    if err != nil {
        log.Fatal(err)
    }
要获取状态,您只需输入存储库中的文件名
    fmt.Printf("%q\n", ws.File("filename").Staging)
    fmt.Printf("%q\n", ws.File("filename").Worktree)

I cannot seem to make a direct relation to the documentation of the StatusCode.


返回的状态码是一个字节
63 =?

关于git - go-git返回的未知状态类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62728365/

相关文章:

Git 恢复不工作

pointers - 隐藏 nil 值,理解为什么 Go 在这里失败

parsing - 在 Go 中并发解析二进制文件中的记录

go - 为什么time.Add方法在此time.Time变量上不起作用,其格式为time.RFC3339以增加日期?

git - 使用 go-git 检查分支是否已经被推送到远程

git - 撤销 git update-index --assume-unchanged <file>

git - 如何在Tortoisegit中将默认模式 "reset"更改为 "hard"?

git - 为什么我通过1970年的go-git提交内容?

git - 使用 go-git 从 GitHub Enterprise 克隆存储库

git - 简单快速的 Git rebase /重写