libgit2 是 Git 核心方法的便携式、纯 C 实现,作为可重入的链接库,具有可靠的 API,允许您在任何拥有绑定器的语言中编写具有原生速度的自定义 Git 应用程序。
libgit2 在一个非常宽松的许可证(GPLv2 与特殊链接异常)下授权。这意味着您可以将其(未修改)链接到任何类型的软件,而无需发布其源代码。
libgit2 已非常适用。
libgit2 在大多数平台上可以干净地编译,无需任何外部依赖项。在类 Unix 系统(如 Linux、*BSD 和 Mac OS X)上,libgit2 预期 pthreads
可用;它们应该已在所有系统上默认安装。在 Windows 上,libgit2 使用原生的 Windows API 进行线程处理。
libgit2 库在所有平台上都使用 CMake 2.6+(http://www.cmake.org)构建。
在大多数系统上,您可以使用以下命令构建库:
$ mkdir build && cd build
$ cmake ..
$ cmake --build .
或者您可以将 CMake 图形界面工具指向 CMakeLists.txt 文件,生成特定平台的构建项目或 IDE 工作空间。
要安装库,您可以通过设置安装前缀来指定:
$ cmake .. -DCMAKE_INSTALL_PREFIX=/install/prefix
$ cmake --build . --target install
有关更高级的使用或有关 CMake 的问题,请阅读 http://www.cmake.org/Wiki/CMake_FAQ。
以下 CMake 变量已声明
BIN_INSTALL_DIR
:安装二进制文件的目录。LIB_INSTALL_DIR
:安装库文件的目录。INCLUDE_INSTALL_DIR
:安装头文件目录。BUILD_SHARED_LIBS
:将libgit2构建为共享库(默认为ON)BUILD_CLAR
:构建基于Clar的测试套件(默认为ON)THREADSAFE
:在libgit2中启用线程支持(默认为OFF)STDCALL
:将libgit2构建为stdcall。对于cdecl禁用(Windows;默认为ON)CMake 允许您指定一些变量来控制编译器和连接器的行为。这些标志很少使用,但可以在64位到32位交叉编译中非常有用。
CMAKE_C_FLAGS
:设置自己的编译器标志CMAKE_FIND_ROOT_PATH
:覆盖库搜索路径ZLIB_LIBRARY
,OPENSSL_SSL_LIBRARY
和 OPENSSL_CRYPTO_LIBRARY
:告诉CMake查找这些特定库的位置如果您想为Mac OS X构建通用二进制文件,如果您在配置时使用-DCMAKE_OSX_ARCHITECTURES="i386;x86_64"
,CMake会为您设置一切。
您需要从Visual Studio命令提示符运行CMake命令,而不是常规或Windows SDK命令提示符。使用-G "Visual Studio X"
选项选择您版本的正确生成器。
有关更详细的说明,请参阅wiki。
以下是目前可用的libgit2绑定
如果您开始使用另一个语言绑定与libgit2库,请让我们知道,以便我们可以将其添加到列表中。
在GitHub上Fork libgit2/libgit2,添加您的改进,将其推送到您分叉的以主题命名的分支,发送pull request。如果您更改了API或做出了其他重大更改,请在docs/rel-notes/目录下的一个以下一个版本命名的文件中进行说明。
您还可以在GitHub上的libgit2项目下提交错误报告或功能请求,或者通过发送电子邮件到
libgit2依据GPL2 具有链接豁免权。这意味着您可以使用任何程序链接到该库,无论是商业程序、开源程序还是其他类型。然而,您不能修改libgit2并在不提供源代码的情况下分发它。
查看COPYING文件获取完整的许可证文本。