Git是一个少有的能将如此多的现代计算封装到一个程序之中的应用程序,它可以用作许多其他应用程序的计算引擎。虽然它以跟踪软件开发中的源代码更改而闻名,但它还有许多其他用途,可以让你的生活更轻松、更有条理。在这个Git系列中,我们将分享七种鲜为人知的使用Git的方法。
今天我们来看看GIC,它是一个基于Git的聊天应用。
初识GIC
虽然Git的作者们可能期望会为Git创建前端,但毫无疑问他们从未预料到Git会成为某种后端,如聊天客户端的后端。然而,这正是开发人员EphiGabay用他的实验性的概念验证应用GIC所做的事情:用Node.js编写的聊天客户端,使用Git作为其后端数据库。
GIC并没有打算用于生产用途。这纯粹是一种编程练习,但它证明了开源技术的灵活性。令人惊讶的是,除了Node库和Git本身,该客户端只包含行代码。这是这个聊天客户端和开源所反映出来的最好的地方之一:建立在现有工作基础上的能力。眼见为实,你应该自己亲自来了解一下GIC。
架设起来
GIC使用Git作为引擎,因此你需要一个空的Git存储库为聊天室和记录器提供服务。存储库可以托管在任何地方,只要你和需要访问聊天服务的人可以访问该存储库就行。例如,你可以在GitLab等免费Git托管服务上设置Git存储库,并授予聊天用户对该Git存储库的贡献者访问权限。(他们必须能够提交到存储库,因为每个聊天消息都是一个文本的提交。)
如果你自己托管,请创建一个中心化的裸存储库。聊天中的每个用户必须在裸存储库所在的服务器上拥有一个帐户。你可以使用如Gitolite或Gitea这样的Git托管软件创建特定于Git的帐户,或者你可以在服务器上为他们提供个人用户帐户,可以使用git-shell来限制他们只能访问Git。
自托管实例的性能最好。无论你是自己托管还是使用托管服务,你创建的Git存储库都必须具有一个活跃分支,否则GIC将无法在用户聊天时进行提交,因为没有GitHEAD。确保分支初始化和活跃的最简单方法是在创建存储库时提交README或许可证文件。如果你没有这样做,你可以在事后创建并提交一个:
$echo"chatlogs"README$gitaddREADME$git