0

我正在尝试使用librarygit获取在repo 中检查的文件的状态。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)

我得到的只是两个63s 被打印出来

63
63

就 git 状态而言,这对应于什么?

我似乎无法与StatusCode.

顺便说一句,指向的文件fullPathToApp是干净的,即它被跟踪和提交。

4

1 回答 1

3

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

    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)

我似乎无法与 StatusCode 的文档直接相关。

返回的状态码是一个字节

63 = ?

于 2020-07-04T12:40:09.990 回答