gitblit是用于跟踪任何一组文件中的更改的软件,通常用于在软件开发过程中协调程序员之间协作开发源代码的工作。
Git 最初是由Linus Torvalds于 2005 年为开发Linux 内核而创作的,其他内核开发人员为其最初的开发做出了贡献。自 2005 年以来,Junio Hamano 一直是核心维护者。
与大多数其他分布式版本控制系统一样,并且与大灶滑多数客户端-服务器系统不同,每台计算机上的每个 Git目录都是一个成熟的存储库,具有完整的历史记录和完整的版本跟踪能力,独立于网络访问或中央服务器。 Git 是仅在 GPL-2.0下分发的免费开源软件执照。
由于 Git 是一个分布式版本控制系统,它可以用作开箱即用的服务器。它附带一个内置命令git daemon,可以启动一个在 GIT 协议上运行的简单 TCP 服务器。
专用 Git HTTP 服务器通过添加访问控制、通过 Web 界面显示 Git 存储库的内容以及管理多个存储库来提供帮助(以及其他功能)。已经存在的 Git 存储库可以被克隆和共享,以供其他人用作集中式存储库。
它也可以通过远程 shell 访问,只需安拆孝装 Git 软件并允许用户登录。 Git 服务器通常侦听TCP 端口9418。
实现
Git(C 中的主要实现)主要在Linux上开发,尽管它也支持大多数主要操作系统,包括 BSD(DragonFly BSD、FreeBSD、NetBSD和OpenBSD)、Solaris、macOS和Windows。
Git的第一个 Windows端口主要是一个托管 Linux 版本的 Linux 仿真框架。
在 Windows 下安装 Git 会创建一个类似名称的 Program Files 目录,其中包含GNU Compiler Collection的Mingw-w64端口、Perl 5、MSYS2和各种其他 Windows 端口或仿真Linux 实用程序和库。
目前,Git 的原生 Windows 版本作为 32 位和 64 位安装程序分发。 git官网目前维护了一个Git for Windows的构建,仍然使用MSYS2环境。
Git 的 JGit 实现是一个纯Java软件库,旨在嵌入到任何 Java 应用程序中旅辩稿。JGit 用于Gerrit代码审查工具和 EGit(Eclipse IDE 的 Git 客户端)。
Go-git 是用纯Go编写的 Git的开源实现。它目前用于支持项目,作为Git 代码存储库的SQL接口,并为 Git 提供加密。
Git 的 Dulwich 实现是Python 2.7、3.4 和 3.5的纯Python软件组件。
Git 的 libgit2 实现是一个 ANSI C 软件库,没有其他依赖项,可以构建在多个平台上,包括 Windows、Linux、macOS 和 BSD。它绑定了许多编程语言,包括Ruby、Python 和Haskell。