Linux服务器上用gitolite管理代码仓库

简述

在小型团队或公司项目中,一般都会有自己的服务器,而将项目代码放在服务器上管理,开发人员通过网络可以访问。这里主要对如何在自己的服务器上新建git代码仓库和管理。这里代码服务器系统用的是Linux(Ubuntu和Debian),客户端(团队开发人员电脑)用的是Win10系统。
因为是技术开发团队,所以使用gitolite作为git服务管理的工具(可以控制具体repo甚至branch的对于开发者的权限)。关于gitolite可以参考使用Gitolite搭建轻量级的Git服务器

配置步骤

这里写图片描述
因此实际上git代码仓库创建,是需要Server和Client都相互协商进行的,而一般Server上的操作是交给运维管理人员来做。

具体过程

客户端git安装与key生成

这里客户端用的是Windows,首先安装git,直接下载git for windows软件进行安装即可,然后在Windows系统的任意的目录下,右键单击就可看到“Git Bash Here”的选项,
这里写图片描述
选择后就会进入git bash命令窗口了:
这里写图片描述
在该命令窗口下,需要进行配置和生成SSH public key。
配置用户与邮件名

$git config --global user.name "XiaoSu"
$git config --global user.email "Xiaosu@126.com"

这个配置的客户端的用户和邮件名称,会在后续的git提交过程中显示,可以表明提交的用户和信息。
接下来是生成Key

$ssh-keygen      // 注释:也可以用$ ssh-keygen -t rsa -C XiaoSu

这个过程会需要输入一些确认信息,可以设置私钥的密码等,也可以不设置私钥密码,这个看自己的情况来定。
生成的Key在windows下一般是在“C:\Users\Administrator.ssh”目录下,
这里写图片描述
这里的id_rsa是本地私钥,需要保密,不能泄露,而id_rsa.pub是公钥,需要分发交给git服务器管理员放到git服务器上的,通过这一套key后续才能正确的通过SSH去访问服务器。
这时候需要将这个生成的id_rsa.pub重新命名一下(因为所有客户端生成的public key的文件名称都一样,这时候可以将id_rsa.pub重命名为XiaoSu.pub,便于后面在服务器上对不同团队成员进行管理)。然后同样在git bash中,使用scp命令将本地windows上重命名了的XiaoSu.pub复制到服务器上(如果windows用户没有权限,可以将XiaoSu.pub交给管理员去处理即可)

$ scp XiaoSu.pub root@192.168.1.9:/tmp

这里是将Windows本地的XiaoSu.pub放到了我自己的192.168.1.9服务器的root账户的/tmp目录下,这个过程需要输入自己root账户的密码才行的。

服务器端git与gitolite安装配置等

首先登陆自己的Linux服务器(直接在服务器端操作,或者在远程使用SSH登陆等方式),首先需要安装git

# apt-get update
# apt-get install git -y

然后添加git账户(单独使用一个git账户来管理所有git相关的东西),并接着切换到git用户下:

# useradd git -d /home/git -m -s /bin/bash
# su git
$ cd ~

此时已经位于/home/git,git user,此时需要安装gitolite,因此在/home/git下创建两个目录,一个bin用于gitolite安装路径,一个src用于放置gitolite源码,

$ mkdir -p ${HOME}/bin
$ mkdir -p ${HOME}/src

此时切换到src目录下并从github clone下来gitolite的源码:

$ cd src
$ git clone http://github.com/sitaramc/gitolite

然后通过源码将gitolite安装到bin目录下:

${HOME}/src/gitolite/install -to ${HOME}/bin

这样,gitolite就安装好了。
之前从我的Windows客户端复制了public key到服务器的/tmp目录下了,此时需要设置这个SSH public key

${HOME}/bin/gitolite setup -pk /tmp/XiaoSu.pub

随后就会看到在/home/git目录下自动生成了projects.list文件和repositories目录(repositories下会默认有gitolite-admin.git和testing.git两个仓库了)。

客户端clone gitolite-admin并管理git仓库权限

此时回到windows客户端,用如下命令clone刚才服务器上生成的gitolite-admin仓库:

$ git clone git@192.168.1.9:gitolite-admin.git

此时就看到clone下来的gitolite-admin有如下两个文件夹:
这里写图片描述
其中conf里面是一个配置文件,用于配置不同仓库的不同团队成员的访问权限,而keydir是所有客户端的public key。

新增一个代码仓库

在clone了gitolite-admin仓库的客户端,是整个git服务器仓库的管理者(只有管理者才能clone gitolite-admin仓库,其他成员都不能)。在clone下来的gitolite-admin中,修改conf目录下的gitolite.conf文件,比如在末尾加上:

repo host-testing
    RW+     =   XiaoSu

然后将gitolite-admin的改动用git add…, git commit…, git push等git常用操作更新到服务器,此时在服务器的/home/git/repositories下面就会自动增加了host-testing.git的仓库,此步骤为在gitolite里注册新项目
仍然继续在任意的客户端,准备好放入git服务器进行维护管理的代码或文档等资料,可以是完全新建的项目,也可以是之前的旧的git仓库项目。
**如果是新项目:**需要在项目根目录下使用如下命令:

$ git init

此时就会看到根目录下生成了.git目录了。
**如果是旧的git项目:**就不需要使用git init命令,而是需要使用:

$ git remote rm origin

断开链接到旧服务器地址的远程仓库。

然后使用如下命令将该项目链接到服务器上的刚刚新建的host-testing远程仓库,并push资料上去:

$ git remote add origin git@192.168.1.9:host-testing.git
$ git add .
$ git commit -m "Initial Revision"
$ git push --set-upstream origin master

接下来就可以供团队进行协作开发和维护了。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技塑未来-苏导

你的鼓励是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值