51工具盒子

依楼听风雨
笑看云卷云舒,淡观潮起潮落

使用Gitolite搭建Git服务器

使用 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

 
                       

```


````


`````


``````


```````


````````


赞(1)
未经允许不得转载:工具盒子 » 使用Gitolite搭建Git服务器