【问题标题】:golang git pulling a repogolang git 拉一个 repo
【发布时间】:2022-02-09 18:42:06
【问题描述】:

我对 golang 很陌生 我正在尝试从 go 程序中执行 git pull。我查看了本机库并找到了https://github.com/src-d/go-git/

我具有克隆等功能。但不拉。查看源代码似乎也有拉动功能

func (r *Repository) Pull(o *PullOptions) 

但是编译器警告它未定义。谁能指出我该怎么做或支持克隆和拉取的替代库?

【问题讨论】:

    标签: git go pull


    【解决方案1】:

    你应该通过克隆一个 repo 来创建一个 Repository 结构:

    import {
      git "gopkg.in/src-d/go-git.v4"
    }
    
    repo, err := git.Clone(memory.NewStorage(), nil, &git.CloneOptions{
        URL: "https://github.com/src-d/go-siva",
    })
    

    然后在 repo struct 上调用 Pull。

    err := repo.Pull(&git.PullOptions{
        RemoteName: "origin"
    })
    

    您不能直接拨打git.Pull

    【讨论】:

    • 谢谢,我需要先打开repo并调用pull。
    【解决方案2】:

    gopkg.in/src-d/go-git.v4 不再维护,建议改用github.com/go-git/go-git。参考-https://pkg.go.dev/github.com/go-git/go-git

    示例代码

    import "github.com/go-git/go-git/v5"
    
    _, err := git.PlainClone("/tmp/foo", false, &git.CloneOptions{
        URL:      "https://github.com/go-git/go-git",
        Progress: os.Stdout,
    })
    

    【讨论】:

      猜你喜欢
      • 2018-10-08
      • 2011-06-07
      • 2011-11-01
      • 2019-07-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-31
      • 2017-06-03
      相关资源
      最近更新 更多