- Git 入门
- Git - 主页
- Git - 版本控制
- Git - 基本概念
- Git - 命令行
- Git - 安装
- Git - 首次设置
- Git - 基本命令
- Git - 获取帮助
- Git - 工具
- Git - 速查表
- Git - 术语
- Git 分支
- Git - 简述分支
- Git - 创建新分支
- Git - 切换分支
- Git - 分支与合并
- Git - 合并冲突
- Git - 管理分支
- Git - 分支工作流程
- Git - 远程分支
- Git - 跟踪分支
- Git - 变基
- Git - 变基与合并
- Git - 合并提交
- Git 操作
- Git - 克隆操作
- Git - 打标签操作
- Git - 别名操作
- Git - 提交操作
- Git - 暂存操作
- Git - 移动操作
- Git - 重命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - 修补程序操作
- Git - 差异操作
- Git - 状态操作
- Git - 日志操作
- Git - HEAD 操作
- Git - origin master
- Git 撤销
- Git - 撤销更改
- Git - 检出
- Git - 还原
- Git - 重置
- Git - 恢复操作
- Git - Rm
- Git - 切换操作
- Git - Cherry-pick
- Git - 修订
- 服务器上的 Git
- Git - 本地协议
- Git - 智能 HTTP 协议
- Git - 哑 HTTP 协议
- Git - SSH 协议
- Git - Git 协议
- Git - 在服务器上获取 Git
- Git - 设置服务器
- Git - 守护进程
- Git - GitWeb
- Git - GitLab
- Git - 第三方托管选项
- 分布式 Git
- Git - 分布式工作流程
- Git - 为项目做贡献
- Git - 维护项目
- 自定义 Git
- Git - 配置
- Git - 钩子
- Git - 属性
- Git - Init
- Git - Commit
Git - 守护进程
Git 守护进程是一个简单的 TCP 服务器,它与 Git 捆绑在一起。它允许用户使用 git 协议获取和克隆仓库。
为通过 Git 协议提供仓库服务设置 Git 守护进程涉及考虑其未经身份验证的特性。因此,它在您希望公开提供 Git 仓库并仅提供只读访问权限的场景中很有用。
Git 守护进程提供的所有数据在其网络内都是公开可访问的。
关键特性
以下是 git 守护进程的一些关键特性
在防火墙外部部署时,将其使用限制在旨在公开显示的项目上。
在防火墙内部,Git 守护进程可以为多个用户或系统可访问的项目提供只读访问权限。
这包括持续集成或构建服务器等场景。
与 SSH 不同,Git 守护进程访问不需要每个用户或系统单独的 SSH 密钥。
它速度快且消耗最少的系统资源,因为它不处理身份验证或加密。
设置 Git 守护进程
以下步骤将设置并运行 Git 守护进程,以通过 Git 协议提供仓库服务
安装 Git 守护进程
Git 守护进程与 Git 捆绑在一起,因此如果您安装了 Git,您就已经可以使用 Git 守护进程了。检查 Git 是否已安装
git --version
如果 Git 未安装,请先安装 Git。使用以下命令
Ubuntu/Debian
sudo apt install git
CentOS/Fedora
sudo yum install git
设置仓库
仓库需要初始化为裸仓库,因为 git 守护进程主要用于服务而不是开发。
为 Git 守护进程启用仓库
您需要专门允许 Git 守护进程,以便它可以提供 Git 仓库服务。为了实现这一点,在裸仓库内创建一个名为git-daemon-export-ok的文件。此文件至关重要,因为它被标记为一个标志,指示可以通过 Git 协议提供仓库服务。
touch /path/to/repository.git/git-daemon-export-ok
注意:此文件很重要,因为没有它,仓库将不会通过 Git 守护进程公开。
运行 Git 守护进程
使用以下命令调用 Git 守护进程
git daemon --reuseaddr --base-path=/path/to/repositories --export-all --verbose --enable=receive-pack
--reuseaddr - 它允许 git 守护进程重用相同的地址,而无需等待超时。
--base-path=/path/to/repositories - 它指定 Git 守护进程将从中提供仓库服务的目录。
--export-all - 在基本路径下,所有仓库都将导出,即使它们没有git-daemon-export-ok文件。此命令应谨慎使用。
--verbose - 它启用详细输出以进行调试过程。
--enable=receive-pack - 它允许用户推送到仓库。出于各种安全原因,默认情况下它处于禁用状态。
通过 Git 守护进程访问仓库
由于守护进程正在运行,您可以使用 git 协议克隆或获取仓库。请查看一个示例
git clone git://your_server_ip_or_hostname/repository.git
Git 守护进程的优势
以下是 Git 守护进程的一些优势
无需身份验证 - 它非常适合公共仓库,您不需要用户特定的访问控制。
速度 - 由于 Git 协议轻量级且针对性能进行了优化,因此它比 SSH 和 HTTP 快。
易于设置 - 它的设置简单易于配置和运行。
Git 守护进程的局限性
以下是 Git 守护进程的一些局限性
无需身份验证 - 由于这是一个优点,它也是一个限制。它不能用于私有仓库或需要安全访问的情况
只读 - 默认情况下它是只读的。尽管您可以使用--enable=receive-pack选项推送更改,但由于缺乏身份验证和安全性,不建议这样做。
没有加密 - 由于 git 协议没有处理加密,因此传输安全和敏感数据是不安全的。
如果您需要身份验证和加密,则应考虑用于私有仓库的替代方案,例如SSH或HTTPS。