Gitolite

来自 Alpine Linux

Gitolite 是对基础 git 安装的封装,它有助于安全地管理项目仓库以及管理控制对这些仓库访问的用户权限。

安装

安装包含 Gitolite 的软件包。

apk add gitolite git

在您的工作站设置新的公钥

运行此命令将创建一个新的私钥和公钥对。

ssh-keygen -N "" -f ~/.ssh/id_rsa

创建公钥的副本。

cp ~/.ssh/id_rsa.pub ~/.ssh/${YOUR_USERNAME}.pub

通过运行如下所示的命令将公钥发送到您的服务器。

scp ~/.ssh/${YOUR_USERNAME}.pub root@${YOUR_SERVER_DOMAIN_OR_IP}:/var/lib/git/${YOUR_USERNAME}.pub

在您的服务器上设置 Gitolite

此命令将使用您刚刚发送到服务器的公钥设置 Gitolite。

警告:无需为系统自动创建的默认 git 帐户添加密码。我们通过 su git 运行 git。


su git -c "gitolite setup -pk /var/lib/git/${YOUR_USERNAME}.pub"

在您的工作站上设置 Gitolite

在您的工作站中,将 .git 目录克隆到您想要的任何位置(最好是您的主目录),以便在服务器外部管理 Gitolite。

git clone git@${YOUR_SERVER_DOMAIN_OR_IP}:gitolite-admin ~/gitolite-admin

使用您喜欢的文本编辑器并打开文件 ~/gitolite-admin/conf/gitolite.conf

vim ~/gitolite-admin/conf/gitolite.conf

将 Gitolite 将要管理的 git 仓库的名称添加到该文件中。它应该看起来像这样

内容 ~/gitolite-admin/conf/gitolite.conf

repo gitolite-admin RW+ = YOUR_USERNAME repo testing RW+ = @all repo YOUR_GIT_REPO RW+ = YOUR_USERNAME

提交您刚刚更改的内容。

git -C ~/gitolite-admin/ commit -am "我的新自定义仓库。"

将更改推送到服务器。

git -C ~/gitolite-admin/ push

在您的工作站中,如果您没有 git 仓库,创建一个

创建一个 dotfiles 目录。

mkdir ~/dotfiles/

在 dotfiles 目录中初始化一个 git 仓库。

git -C ~/dotfiles/ init

我们将为此新的 .git 添加远程仓库。在这种情况下,我们指向安装了 Gitolite 的服务器,以及我们之前通过 gitolite-admin 推送数据发送的仓库名称。

git -C ~/dotfiles/ remote add origin git@${YOUR_SERVER_DOMAIN_OR_IP}:${YOUR_GIT_REPO}

将一些文件添加到您的新仓库。

echo "hello world" > ~/dotfiles/testfile

git -C ~/dotfiles/ add ~/dotfiles/testfile

创建一个提交。

git -C ~/dotfiles/ commit -am "这是我的第一次提交。"

将文件推送到服务器。在这种情况下,它被推送到安装了 Gitolite 的服务器中。

git -C ~/dotfiles/ push --set-upstream origin master