相关概念
裸库:裸库里面只有 git 文件,保存变更,而不保存源代码。
选择协议
- 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 //使用本地仓库做为远程仓库
***
- 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
- 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 服务,集中管理授权。
浙公网安备 33010602011771号