配置git 通过git://协议进行只读访问, 以及配置本地访问 ,以及通过http 访问

本文详细介绍了Git使用的四种主要协议:本地协议、SSH协议、Git协议和HTTP(S)协议。重点讲解了每种协议的特点及应用场景,并提供了如何配置这些协议的具体步骤。

git 可以使用四种主要的协议来传输数据:本地传输,SSH 协议,Git 协议和 HTTP 协议。

1本地协议 

            远程仓库在该协议中就是硬盘上的另一个目录。这常见于团队每一个成员都对一个共享的文件系统(例如 NFS )拥有访问权,抑或比较少见的多人共用同一台电脑的时候。后者不是很理想,因为你所有的代码仓库实例都储存在同一台电脑里,增加了灾难性数据损失的可能性。

如果你使用一个共享的文件系统,就可以在一个本地仓库里克隆,推送和获取。要从这样的仓库里克隆或者将其作为远程仓库添加现有工程里,可以用指向该仓库的路径作为URL。比如,克隆一个本地仓库,可以用如下命令完成:

 首先,我们在 我们建立一个作为服务器端的库(虽然是在本地,)










然后我们在别的目录建立一个clone这个小项目,而这个小项目会把/home/git/repos.git 当作远程服务器,

把clone 下来的小项目repos 上push(相当于svn 的提交到服务器) 到/home/git/repos.git




git clone /home/git/repos.git

会在当前目录下生成repos目录 repos目录下有个.git 目录,

repos 目录下运行git remote 会默认有一个 origin 的远程端,就是clone 的源端,

而git 的项目是有分支的,默认分支名字是master

所以要把当前项目推送到远程端需要指定将哪个分支推到哪个远程端,

git push origin master


(将当项目的master 分支,推送到origin远程端(即/home/git/repos.git),)/

当然也可以添加其它的远程端



git repos$


git remote add another_server /tmp/repos.git (前提是/tmp/repos.git 存在,)


git repos$
git remote

another_server

origin




另一个用户再次从/home/git/repos.git clone 时,里面就多了a.java文件






===========================================================================================================================




SSH 协议

在一篇讲解http://blog.youkuaiyun.com/jixiuffff/archive/2010/10/26/5966852.aspx

================================================================================

Git 协议

接下来是 Git 协议。这是一个包含在 Git 软件包中的特殊守护进程; 它会监听一个提供类似于 SSH 服务的特定端口(9418),而无需任何授权。用 Git 协议运营仓库,你需要创建 git-export-daemon-ok 文件——它是协议进程提供仓库服务的必要条件——但除此之外该服务没有什么安全措施。要么所有人都能克隆 Git 仓库,要么谁也不能(通常做为只读)。 这也意味着该协议通常不能用来进行推送。你可以允许推送操作;然而由于没有授权机制,一旦允许该操作,网络上任何一个知道项目 URL 的人将都有推送权限。不用说,这是十分罕见的情况。

比如在/home/git 目录下有一个repos.git ,把想把repos.git 能过git:// 协议访问

需要运行

Git 协议的设定都相对简单。基本上,只要以长期守护进程的形式运行该命令:

git daemon --reuseaddr --base-path=/home/git



这还不够, 如果想要repos.git 通过git://协议,需要创建一个空文件(只要文件存在就可以)













=========================================================================================================================



HTTP/S 协议

最后还有 HTTP 协议。HTTP 或 HTTPS 协议的优美之处在于架设的简便性。基本上, 只需要把 Git 的纯仓库文件放在 HTTP 的文件根目录下,配置一个特定的 post-update 挂钩(hook),就搞定了(Git 挂钩的细节见第七章)。从此,每个能访问 Git 仓库所在服务器上的 web 服务的人都可以进行克隆操作

当然要装上apache  等web 服务器

 

 












### 正确执行 `git clone` 命令 为了从 GitHub 上克隆 ICU 项目的仓库,需要遵循以下方法来确保命令能够成功执行并获取完整的项目文件。 #### 使用 HTTPS 方式克隆 如果选择通过 HTTPS 协议克隆仓库,则可以直接使用如下命令: ```bash git clone https://github.com/<用户名>/<ICU-项目名>.git ``` 这里的 `<用户名>` 和 `<ICU-项目名>` 需要替换为实际的 GitHub 用户名以及对应的 ICU 项目名称[^1]。由于 GitHub 已经停止支持基于账户密码的操作方式,因此在首次克隆时可能会提示输入个人访问令牌 (Personal Access Token, PAT),而不是传统的密码。 #### 使用 SSH 方式克隆 另一种更安全的方式是利用 SSH 进行身份验证。这要求先配置好系统的 SSH 公私钥,并将公钥上传至 GitHub 的设置页面中。完成这些前置条件之后,可以通过下面的命令实现克隆: ```bash git clone git@github.com:<用户名>/<ICU-项目名>.git ``` 需要注意的是,在某些情况下可能遇到缺少特定文件的问题,比如引用提到的情况——即克隆过程中部分资源未能正常下载下来[^3]。此时建议重新尝试整个过程或者手动删除异常目录后再试一次。 另外值得注意的一点在于区分不同类型的 Git 管理模式:如果是仅作为只读用途而不需要频繁修改代码的话(如服务器端部署),那么采用上述简单的拉取策略就足够了;但如果涉及持续开发工作流,则还需要考虑如何有效地提交改动回远程仓库等问题[^2]。 #### 总结注意事项 - **SSH密钥配置**:务必提前准备好SSH连接所需的认证材料。 - **URL准确性**:确认使用的链接地址无误。 - **权限校验**:保证自己具备足够的操作权利去访问目标存储库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值