Go的git库

vhd*_*irk 25 git go

作为一个宠物项目,我想开发一个使用git作为存储后端的笔记应用程序.(我怀疑这还不存在,鉴于这个人的博客帖子:http://jarofgreen.co.uk/2012/08/how-about-a-mobile-note-app-backed-by-git/)

现在,我想借此机会与Go玩一下.但是,我似乎无法找到Go的任何(甚至是最小的方法)git库.实际上有吗?

显然我对Go的知识是不存在的,所以为libgit编写绑定似乎并不是一种有趣的开始...(我可能会使用ruby,我也不知道)

Fer*_* Á. 38

我会说git2go是Go中使用的git绑定库.它由运行libgit2的人定期更新和维护.

如果您正在寻找纯粹的写在围棋混帐实现,去-混帐源{d}是最成熟,最活跃的选项.

  • 我最终选择了go-git,git2go使得在Windows机器上正常工作非常麻烦。 (3认同)

Vic*_*gin 11

您可以git使用Go标准库中的os/exec包来命令命令.

  • 那是[官方'去'命令的作用](https://golang.org/src/cmd/go/vcs.go). (5认同)

mcu*_*ros 7

几年前,我和我的团队,我们在Go中编写了一个纯粹的git实现,它避免了任何c/c ++依赖,并使其更灵活,更容易扩展.

https://github.com/src-d/go-git

go-git旨在达到libgit2或jgit的完整性,现在涵盖了大部分的管道读取操作和一些主要的写操作,但缺乏主要的瓷器操作,如合并.


kos*_*tix 6

Victor提出的确实是开发人员设想的"编写"Git"官方"方式.Git的命令分为两大类,专门用于此目的:"管道"命令是低级的,并且主要用于其他程序; "瓷器"命令旨在与用户交互,并调用管道命令来完成他们的工作.查看/usr/lib/git-core目录(可能在您的系统上可能不同)以了解Git有多少管道命令.

另一方面,Go支持通过其cgo工具链接共享库.你因此可以试着libgit2用它包装.AFAIK libgit2还没有完全与Git本身相提并论,但它能够读/写Git存储库,进行分支等 - 据说它足以完成你的任务.

好吧,在我写完所有内容后,我向下滚动了网站上的"Bindings"条目libgit2,发现go-git......