发表于2013-10-29 17:29| 4359次阅读| 来源CSDN| 4 条评论| 作者张红月
摘要:libgit2是一个可移植、纯C语言实现的Git开发包,作为一款带有稳固API的可重入链接库,libgit2允许你使用任何语言来编写Git应用。
libgit2是一个可移植、纯C语言实现的Git开发包,作为一款带有稳固API的可重入链接库,libgit2允许你使用任何语言来编写Git应用。此外,libgit2可以应用在各个平台上,包括Unix、Linux、MacOS X、Windows等。
libgit2的开源许可非常自由(GPLv2 with a special Linking Exception),这意味着你可以在产品中随意使用libgit2,即使是闭源的商业项目。
用途
libgit2已被广泛应用在许多应用程序上,包括GitHub网站,还被应用在Plastic SCM和强大的微软Visual Studio工具箱上。该库主要提供以下功能:
- SHA转换、格式化和缩略词;
- 抽象的ODB后端系统;
- 提交、标签、树和BLOB解析、编辑、blob解析和回写;
- 树遍历
- revision walking
- 索引文件(临时区域)操作
- 引用管理(包括包引用)
- 配置文件管理
- 高级仓库管理
- 线程安全和可重入
- 错误信息描述非常详细
- 更多(超过175个不同的API调用)
目前,可以绑定到libgit2的语言有,并附上各个语言的绑定方法:
- C++
- libqgit2,Qt bindings https://projects.kde.org/projects/playground/libs/libqgit2/
- Chicken Scheme
- chicken-git https://wiki.call-cc.org/egg/git
- D
- Delphi
- GitForDelphi https://github.com/libgit2/GitForDelphi
- Erlang
- Go
- GObject
- libgit2-glib https://live.gnome.org/Libgit2-glib
- Haskell
- Lua
- .NET
- libgit2sharp https://github.com/libgit2/libgit2sharp
- libgit2net, low level bindings superseded by libgit2sharp https://github.com/txdv/libgit2net
- Node.js
- node-gitteh https://github.com/libgit2/node-gitteh
- nodegit https://github.com/tbranyen/nodegit
- Objective-C
- objective-git https://github.com/libgit2/objective-git
- OCaml
- libgit2-ocaml https://github.com/burdges/libgit2-ocaml
- Parrot Virtual Machine
- parrot-libgit2 https://github.com/letolabs/parrot-libgit2
- Perl
- PHP
- Python
- Ruby
- Vala