- Git 入门
- Git - 首页
- Git - 版本控制
- Git - 基本概念
- Git - 命令行
- Git - 安装
- Git - 首次设置
- Git - 基本命令
- Git - 获取帮助
- Git - 工具
- Git - 速查表
- Git - 术语
- Git 分支
- Git - 分支简述
- Git - 创建新分支
- Git - 切换分支
- Git - 分支和合并
- Git - 合并冲突
- Git - 管理分支
- Git - 分支工作流程
- Git - 远程分支
- Git - 追踪分支
- Git - 变基
- Git - 变基 vs. 合并
- Git - 合并提交
- Git 操作
- Git - 克隆操作
- Git - 标签操作
- Git - 别名操作
- Git - 提交操作
- Git - 暂存操作
- Git - 移动操作
- Git - 重命名操作
- Git - 推送操作
- Git - 拉取操作
- Git - Fork 操作
- Git - Patch 操作
- Git - Diff 操作
- Git - 状态操作
- Git - 日志操作
- Git - HEAD 操作
- Git - origin master
- Git 撤销
- Git - 撤销更改
- Git - checkout
- Git - revert
- Git - reset
- Git - 还原操作
- Git - rm
- Git - switch 操作
- Git - cherry-pick
- Git - amend
- Git 服务器端
- Git - 本地协议
- Git - 智能 HTTP 协议
- Git - 简单 HTTP 协议
- Git - SSH 协议
- Git - Git 协议
- Git - 在服务器上安装 Git
- Git - 设置服务器
- Git - Daemon
- Git - GitWeb
- Git - GitLab
- Git - 第三方托管选项
- 分布式 Git
- Git - 分布式工作流程
- Git - 为项目贡献代码
- Git - 维护项目
- 自定义 Git
- Git - 配置
- Git - 钩子
- Git - 属性
- Git - init
- Git - commit
Git - 本地协议
Git 本地协议是 Git 用于在位于同一文件系统上的不同仓库之间传输数据的方法之一。
此协议涉及通过本地文件路径而不是通过网络在同一主机上的不同目录中查找远程仓库。
工作原理?
如果您有共享挂载的文件系统,则可以克隆、推送到和从基于本地文件的仓库中拉取。
使用仓库的路径作为 URL 来克隆仓库或将其作为远程仓库添加到现有项目。
Git 使用本地协议直接通过文件系统传输文件和引用。
1. 例如,运行类似于以下命令以将本地仓库克隆到另一个目录
git clone /path/to/repository /path/to/destination
2. 从本地仓库拉取:从本地仓库拉取或获取也使用本地协议。
git remote add origin /path/to/repository
3. 推送到本地仓库:使用本地协议将文件路径指定为远程仓库来推送到本地仓库。
git push /path/to/repository branch_name
当 Git URL 以file://开头时,它会修改操作的处理方式。
在没有file://的情况下,Git 使用直接文件复制或硬链接来优化操作。
提供file://时,Git 使用效率较低的网络传输过程。
当需要干净的仓库副本,没有任何不必要的引用或对象时(例如,从另一个版本控制系统迁移后),通常使用file://。
在大多数情况下,使用常规路径(无file://)更快且足够。
git clone file:///srv/git/project.git
使用以下命令将本地仓库添加到现有 Git 项目。
git remote add local_proj /path/to/repository
添加后,可以像访问网络远程仓库一样,向新添加的远程仓库 (local_proj) 推送和拉取。
优势
基于文件的仓库利用现有的网络访问和文件权限,使其易于设置。
Git 本地协议快速高效,因为没有网络开销。
这是在同一系统上放置多个仓库的理想设置。
克隆更快并节省磁盘空间,因为 Git 可能会使用硬链接来避免复制对象文件。
使用此配置,可以快速轻松地从同事的工作仓库中检索工作,而无需将其推送到远程服务器然后再从中检索。
局限性
与基于网络的访问相比,可访问性可能更复杂,因为仓库位于同一台机器上或可通过共享文件系统访问,例如网络挂载的驱动器。
共享文件系统的功能决定了访问速度,这可能会导致性能下降。
因为 NFS 仓库可能比同一服务器上可通过 SSH 访问的仓库慢,所以 Git 能够有效地利用本地驱动器。
基于文件的仓库也没有针对意外损坏的内置保护。
如果用户无意中更改或删除重要的 Git 文件,则拥有远程目录的 shell 访问权限的用户有损坏仓库的风险。
这并非最佳选择,因为每个仓库实例都位于同一系统上。
由于集中化,增加了数据灾难性丢失的可能性。