相关概念

裸库:裸库里面只有 git 文件,保存变更,而不保存源代码。


选择协议

  1. Local:使用本地的其它文件目录做为服务器,不需要网络,示例操作:
git clone --bare
git clone /path/to/dir/one.git  //从本地服务器克隆仓库
git clone file:///path/to/dir/one.git    //或者显式加上 file://,但会降低传输速度。
git remote add local /path/do/dir/one.git    //使用本地仓库做为远程仓库
***
  1. HTTP:和 gitHub 一样,可以使用用名户/密码验证。你可以在本地目录使用HTTP协议,例如:
    先在本地创建一个网站,使之作为 git 裸库,进入网站空目录
git clone --bare /path/to/dir/one one.git   //--bare 创建为裸库
cd one.git
mv hooks/post-update.sample hooks/post-update
chmod a+x hooks/post-update

最后使用本地 HTTP 协议的仓库:
git clone https://本地网站域名/one.git


  1. SSH:使用 SSH 协议更安全,而且安全。
git clone ssh://username@server/project.git
git clone username@server:project.git
***

4. Git:包含在 Git 中的一个守住进程,端口是:9418,此种协议没有授权能力,不安全但快。

### 搭建 git 服务器
1. 从自己的项目创建 git 裸库 
git clone --bare project project.git
2. 将裸库上传到服务器
scp -r project.git username@server:/path/to/dir    //对目录有权限的用户可以推送数据
3. 进入远程服务器,修改目录的“组权限”为可写
ssh username@server
cd /path/to/dir/project.git
git init --bare  --shared
4. 自此,拥有 SSH 账号并可以访问该目录的人,即可以推送变更到该仓库。

### 访问授权
1. 第一种,可以控制每个成员的 SSH 账户。
2. 第二种,建立一个 git 账户,使成员发送 SSH 公钥到服务器,放入:~/.ssh/authorized_keys中
3. 第三种,使用 LDAP 服务,集中管理授权。
posted on 2023-03-11 21:23  花满莫轻寒  阅读(21)  评论(0)    收藏  举报