我正在寻找建立一个与git密切联系的应用程序..
是否有可用的语言绑定?如果有,哪些是最全面的?
这意味着要去Bare Metal C吗?
或者perl / python / php / C#是否有一组完整的绑定?
由于
丹尼尔
答案 0 :(得分:76)
在某些编程语言中使用Git有三种不同的方法:
Git的重新实现用不同的语言。这就是以下项目的作用:
重新实现的问题是它们并不总是实现完整功能,有时候实现错误。另一方面,他们是原生的,实现良好的表现;它们的许可可能与Git的C(原始)实现不同,后者是GPLv2。
Wrappers ,它调用Git命令并将其包装成某种形式,适用于目标语言。
包装器的问题在于它们可能很慢(它们需要分配git进程),并且它们需要安装git才能工作。
另请注意,git本身具有高度脚本化(例如使用shell脚本),这要归功于除了针对最终用户(瓷器)的更高级别命令之外,它还提供了用于编写脚本的低级命令(管道)。
最后有绑定到libgit2 ,这意味着它是具有可靠API的可重入链接库(是Google Summer of Code 2010项目)。
Libgit2是一个很新的项目;它正在进行中,所以并非所有事情都在实施时实施。有关详细信息,请参阅libgit2 homepage。
所有这些信息都可以在Git Wiki上的InterfacesFrontendsAndTools页面找到
答案 1 :(得分:2)
您可能尝试不使用API。 git是一组不同抽象级别的实用程序。您应该能够构建一组全面的实用程序,通过调用这些实用程序并处理它们的输出来工作。许多高级git命令都是shell脚本或perl脚本就是这样做的,所以你在git源代码中有很多例子可以作为例子使用。
开头的好例子:
magit:用emacs lisp编写的emacs的git界面
git gui:tcl,附带git
gitk:tcl,还附带git
gitview:python,来自contrib目录中的git。
tig:C,git的文本模式历史记录。
答案 2 :(得分:1)
取决于你想要的东西,用C / C#最舒服的外观。 Git是用C语言编写的,所以如果你想要速度,那么也许你应该选择它。但是如果你想要代码清晰度和编写的简易性,GitSharp可能是一个更好的选择。
答案 3 :(得分:0)
我不确定它是否是最好的,但对于.net,有GitSharp