使用 Gitolite 搭建 Git 服务器是管理 Git 仓库和用户权限的一种高效方式。Gitolite 是一个轻量级的 Git 服务器管理工具,它允许管理员通过 SSH 访问控制和配置文件来管理多个 Git 仓库和用户权限。
博主博客 {#博主博客}
一、安装 Vim {#一、安装-vim}
01 sudo apt install vim </code> </pre>
二、安装 Git {#二、安装-git}
`` sudo apt install git
</code> </pre>
三、创建用户 {#三、创建用户}
`
`
创建git用户:
sudo adduser git
切换到git用户:
su git
进入git用户目录:
cd ~
四、安装 Gitolite {#四、安装-gitolite}
{#codeBlock0-1733987765133}
` git clone https://github.com/sitaramc/gitolite mkdir -p $HOME/bin gitolite/install -to $HOME/bin ` </code> </pre> ` ` **五、注册仓库管理员** {#五、注册仓库管理员} -------------------------- ` ` * 新建 ` YourName.pub ` 文件,将客户端公钥 ` .ssh/id_rsa.pub ` 复制到里面,然后注册为仓库管理员 ` `` `` vim YourName.pub # 复制客户端公钥内容,按:wq保存退出 $HOME/bin/gitolite setup -pk YourName.pub # 注册仓库管理员 ` </code> </pre> ` ` 建议在服务器上新建 ` admin ` 用户作为仓库管理员 ` ` * 新建管理员用户 ` admin ` ` `{#codeBlock0-1733987765133} ````````prism language-bash ` sudo adduser admin ` </code> </pre> ` ` * 生成 ` SSH ` 公钥 ` `` `` su admin ssh-keygen -t rsa -C " youremail@example.com " cp .ssh/id_rsa.pub /tmp/admin.pub ` </code> </pre> ` ` * 切回 ` git ` 用户,将 ` admin ` 用户注册为仓库管理员 ` ` ```````prism language-bash su git cd ~ $HOME/bin/gitolite setup -pk /tmp/admin.pub </code> </pre> 注册管理员后会生成两个文件 ` projects.list ` , ` repositories/projects.list ` 保存仓库信息列表 ` repositories/ ` 文件夹里有管理员仓库 ` gitolite-admin.git/ ` 和测试仓库 ` testing.git/ ` 新建的仓库都会保存在 ` repositories/ ` 文件夹中。 **六、管理远程仓库** {#六、管理远程仓库} ------------------------ * 在已经注册过的客户端克隆管理员仓库 ``````prism language-bash git clone git@host:gitolite-admin </code> </pre> 管理员仓库里有两个文件 ` conf/gitolite.conf ` 和 ` keydir/ ` ` gitolite.conf ` 管理仓库信息 ` keydir/ ` 保存 ` git ` 成员的公钥 * 添加新成员: 将新成员的公钥保存到 ` keydir/ ` 下 * 新建仓库 修改 ` conf/gitolite.conf ` 文件,添加 ` newrepo ` 仓库 `````prism language-conf repo gitolite-admin RW+ = admin repo testing RW+ = @all repo newrepo RW+ = @all </code> </pre> * 添加仓库管理员 ````prism language-conf repo gitolite-admin RW+ = admin RW+ = lin-zone repo testing RW+ = @all repo newrepo RW+ = @all </code> </pre> **七、将仓库信息推送到服务器** {#七、将仓库信息推送到服务器} ---------------------------------- 在客户端更新完仓库信息后,需要将其推送到服务器才能生效 ```prism language-bash git add . git commit -m "commit message" git push origin master </code> </pre> 参考文献 {#参考文献} ------------ * https://github.com/sitaramc/gitolite ``` ```` ````` `````` ``````` ````````