是否有GIT(C++或其他语言)的API

是否有GIT(C++或其他语言)的API

问题描述:

一家公司要求我为他们编写一个GIT包装程序。是否有GIT(C++或其他语言)的API

那里的人们绝对没有版本控制系统的经验,但最终(通过我的程序)它将被纳入日常生活中。

我正在计划使用VC++来创建一个小窗口小程序,这将有助于在这个过程中的体育锻炼。对此有何想法?

Deamon进程检查用户是否想要提交/推送他们的文件呢?

+8

包装的目的是git和其他* git工具无法处理的目的是什么? –

+3

假设您确实需要包装系统,您可以使用适当的参数直接从程序中调用git。 – mwd

请参见差不多(但不是全部!)使用的情况下,libgit2是通过代码Git仓库进行交互的最简单方法。

+0

这看起来不错...当我看着libgit2如果有一个不需要Qt的C++绑定......看起来好像没有在提供的网站上做广告。我注意到OP想要VC++:看起来像别人有VS2010 C++的问题,但它在这个SO后解决:http://stackoverflow.com/questions/14860814/qt-creator-unresolved-external-symbol – rholmes

已经有TortoiseGit,以及其他“友好”界面。不要重新发明轮子,从研究已有的东西开始。

+0

当然,它是开源的,所以即使它不是你想要的,它可能比没有任何东西更接近。 – Cascabel

+1

他要求包装git功能,而不是界面。例如,如果你想在一个软件中实现协作功能,你需要一个库。我知道Ruby中的Grit,但afaik对于C/C++没有这样的事情。 – Michael

+2

@ user626921:他的问题明确指出他的目标是为他的用户提供一个界面。他目前的计划是编写一个计划,但我建议采用成本较低的方法来自定义一个已经存在的计划。 –

Git已经有两层:管道(您可能会感兴趣),其上建立了主要的瓷器,它提供了用户界面。如果你想实现类似git-commit但语义稍微不同的所有基础程序,如git-write-treegit-rev-parse,那么你可以继续构建。

What does the term "porcelain" mean in Git?

+0

非常感谢。这正是我要找的 – Draconar

+0

Git非常灵活 - 瓷器非常棒。如果你不习惯于GUI,你可以通过一种最喜欢的语言(Ruby,Python,Perl或类似bash的shell)尝试一种简单的脚本编写方法。我已经看到那些曾经效果良好的DVCS系统,但对于那些不接受命令行的人来说可能会很困难。在Git中添加别名命令本身也可能有很长的路要走,但是你需要能够将它们分发给你的用户群(不是太难,很多选项) – rholmes