用go代码操作git

2023-05-16

git2go是一个用go代码操作git的库,需要依赖于第三方库libgit2

安装libgit2前,先安装相应的包:

yum -y install libssh2-devel

在 https://github.com/libgit2/libgit2 下载libgit2的代码进行安装:

mkdir build && cd build
cmake ..
cmake --build . --target install

然后下载git2go:

go get -d github.com/libgit2/git2go
-d表示只把代码下载不安装

进行git2go的目录,执行:

git checkout next
git submodule update --init # get libgit2
make install

下面是测试的代码:

package main

import (
    git "github.com/libgit2/git2go"
    "log"

)

func credentialsCallback(url string, username string, allowedTypes git.CredType) (git.ErrorCode, *git.Cred) {
    ret, cred := git.NewCredSshKey("git", "/var/www/testgo/git/id_rsa.pub", "/var/www/testgo/git/id_rsa", "")
    return git.ErrorCode(ret), &cred
}

func certificateCheckCallback(cert *git.Certificate, valid bool, hostname string) git.ErrorCode {
    return 0
}

func main() {

    cloneOptions := &git.CloneOptions{}
    cloneOptions.FetchOptions = &git.FetchOptions{
        RemoteCallbacks: git.RemoteCallbacks{
          CredentialsCallback:      credentialsCallback,
          CertificateCheckCallback: certificateCheckCallback,
        },
      }
    repo, err := git.Clone("git@github.com:test/test.git", "/tmp/code", cloneOptions)
            if err != nil {
                    log.Panic(err)
            }
    log.Print(repo)
}

[文章作者]曾健生

[作者邮箱]h6k65@126.com

[作者QQ]190678908

[博客]  http://blog.csdn.net/newjueqi

http://blog.sina.com.cn/h6k65




本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

用go代码操作git 的相关文章

随机推荐

  • 36.如何使用定时任务

    lt span style 61 34 font family Arial Helvetica sans serif background color rgb 255 255 255 34 gt 在app后台开发中 xff0c 经常需要执行
  • goroutine背后的系统知识

    http www sizeofvoid net goroutine under the hood o语言从诞生到普及已经三年了 xff0c 先行者大都是Web开发的背景 xff0c 也有了一些普及型的书籍 xff0c 可系统开发背景的人在学
  • 37.创业团队不是天堂

    在媒体的报导中 xff0c 创业公司一直都是充满情怀的 xff1a 宽松的工作环境 xff0c 不差的薪水 xff0c 不断高涨的融资额 xff0c 吃不完的零食和喝不完的饮料 xff0c 一群年轻人为了实现自己的梦想而一起奋斗 种种诱人的
  • java小程序(1)

    文章标题 java 小程序 xff08 1 xff09 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者声明 本人水平有限 xff0c 失误之处 xff0c 敬请各位指出
  • java小程序(2)

    文章标题 java 小程序 xff08 2 xff09 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者声明 本人水平有限 xff0c 失误之处 xff0c 敬请各位指出
  • java小程序(3)

    文章标题 java 小程序 xff08 3 xff09 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者声明 本人水平有限 xff0c 失误之处 xff0c 敬请各位指出
  • Python爬虫淘宝基于selenium抓取淘宝商品数据2021年测试过滑动验证

    配置一下 34 可能需要修改的参数 34 xff0c 就可以食用底部代码了 ps 可能已失效 本文章代码功能准备工作Python用到的库和准备工作 可能需要修改的参数在CMD中打开一个Chrome浏览器并启用端口给Selenium调用导入模
  • Android下的应用编程——用HTTP协议实现文件上传功能

    文章标题 Android 下的应用编程 用 HTTP 协议实现文件上传功能 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者 MSN zengjiansheng1 64 h
  • 从HTTP协议分析转发和重定向的区别

    文章标题 从 HTTP 协议分析转发和重定向的区别 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者 MSN zengjiansheng1 64 hotmail com 作
  • 编写SQL查询的关键—SQL语句的执行顺序

    文章标题 编写 SQL 查询的关键 SQL 语句的执行顺序 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者 QQ 190678908 作者 MSN zengjiansheng1 64 hotmail c
  • 用Java实现二叉树

    lt Font Definitions 64 font face font family 宋体 panose 1 2 1 6 0 3 1 1 1 1 1 mso font alt SimSun mso font charset 134 ms
  • Java下实现快速排序

    文章标题 lt Font Definitions 64 font face font family 宋体 panose 1 2 1 6 0 3 1 1 1 1 1 mso font alt SimSun mso font charset 1
  • Java实现之冒泡排序

    lt Font Definitions 64 font face font family 宋体 panose 1 2 1 6 0 3 1 1 1 1 1 mso font alt SimSun mso font charset 134 ms
  • 38.“财务自由“,喂给创业者的童话故事

    现在我们拼搏两三年 xff0c 等公司上市后 xff0c 就实现财务自由 xff0c 就能过上好日子 上面是我看到有些人拉创业者入伙时说的话 xff0c 很具有蛊惑性 我很疑惑 xff0c 怎么 财务自由 就和 过上好日子 画上了等号呢 x
  • nodejs模块xml2js解析xml的坑

    在一个项目中 xff0c 用到nodejs模块xml2js解析xml xff0c xml的数据如下 xff1a lt xml gt lt MsgId gt 6197906553041859764 lt MsgId gt lt xml gt
  • 推荐《超右脑英语学习法》

    文章标题 推荐 超右脑英语学习法 文章作者 曾健生 作者邮箱 zengjiansheng1 64 126 com 作者QQ 190678908 作者MSN zengjiansheng1 64 hotmail com 作者博客 blog cs
  • git回退到某个历史版本

    1 使用git log命令查看所有的历史版本 xff0c 获取某个历史版本的id xff0c 假设查到历史版本的id是139dcfaa558e3276b30b6b2e5cbbb9c00bbdca96 2 git reset hard 139
  • 手把手教你研发属于自己的智能无人机

    1 让智能无人机梦想变成现实 对于大多数极客学员来说 xff0c 自己组装一台无人机 xff0c 可以航拍 xff0c 可以目标跟踪 xff0c 是心中的梦想 xff0c 但是实现梦想的学员却很少
  • zookeeperd无法启动的分析

    在文章 zookeeper启动失败的排错中描述了zookeeperd的一种启动错误 xff0c 今天笔者还发现了另外一种启动错误 xff0c 顺便记录下来 xff1a 一台测试的服务器重启后 xff0c 运行zookeeperd的启动脚本显
  • 用go代码操作git

    git2go是一个用go代码操作git的库 xff0c 需要依赖于第三方库libgit2 安装libgit2前 xff0c 先安装相应的包 xff1a yum y install libssh2 devel 在 https github c