群晖NAS搭建git服务器及初始化一个项目

公司用群晖NAS来管理内部的代码,我把代码、数据库都托管再NAS上面,因为NAS有两块硬盘,本身就具备容灾能力,所以,就直接放上面吧,定时备份下来即可。这篇文章,主要是来讲一下如何再NAS上搭建git服务器,并且初始化一个项目。具体的git操作方法就不讲了。

1. 安装git server和开启相关服务

群晖NAS采用DSM管理系统,用web登陆到NAS上面去,进入“套件中心”,找到git server,安装它。

2015-10-10-10:18:35

安装好之后,建议创建一个用户来专门从服务器上克隆、拉去和提交。

进入“控制面板”“用户账户”,然后新增一个用户,我新增的是git,为了坚持简单问题复杂化的原则,我又创建了一个git用户组,并且修改了用户和用户组的权限,其他任何权限什么的都没有,不能登陆,不能同步文件,不能ssh登陆。

接下来,我们要通过ssh登陆到服务器上面去,所以要开通ssh权限。

2015-10-10-10:27:10

2015-10-10-10:27:42

OK,现在已经完成这一步操作,可以进入下一步了。

2. 通过SSH创建一个服务端版本库

虽然NAS由DSM进行管理,但是实际上它仍然是一个小型的Linux,我们可以像普通的linux一样,通过远程工具登陆到它上面去。我自己用的是ubuntu的系统,所以执行下面的命令(假设NAS的IP地址是10.0.0.10)

$ ssh 10.0.0.10 -u root
password: ******

这样就可以通过SSH登陆到NAS的linux里面去。其中,密码是你再初始化DSM时,为超级管理员admin创建的密码,如果你的NAS上还没有其他用户,那么这个密码肯定就是你用admin登陆DSM管理面板的时候用的密码。

如果你是再windows上操作,可以使用putty作为SSH工具,连接到NAS的Linux上去。

进入NAS的Linux命令行操作界面后,按顺序执行下面的命令:

$ cd /volume1          # 一般群晖nas有两块硬盘,有一块是作为备用,所以在系统里面仅挂载了一块硬盘,挂载点是/volume1或者/volume2,你可以通过 ls /来查看
$ mkdir git               # 再硬盘中创建一个git目录,我们会把所有的git repos放在这里
$ cd git
$ git init --bare android.git           # 初始化一个版本库,通过这个命令后,会再git目录下创建一个android.git目录,进去里面可以看到版本库的相关文件
$ chown -R git:git android.git       # 要让git用户对这个板块库目录拥有可执行的权限,否则git再往上commit的时候,是没有权限写入文件的

好了,这样服务端的一些处理就完成了。

3. 再本地克隆android项目

我在ubuntu上面,所以就直接上命令了。

$ git clone ssh://git@10.0.0.14/volume1/git/android.git          # 这里值得注意的,就是ssh:// ,可能会提示某些错误,可以先不要理会,只要能克隆下来就可以了。
$ ls                            #看下是否出现了一个android目录

这样,就把android目录克隆到本地了,虽然还是个空项目。

在执行 git commit 的时候,会出现错误,要求提供用户和邮箱,这个时候,只需要按照提示执行git --config就可以了,OK,本地可以按照你所熟悉的操作进行git版本控制了。

再windows上,在克隆版本库的时候,一定要注意一个细节,就是我们再服务器上初始化的是一个空项目,没有创建任何分支,所以,在通过windows上的git客户端克隆时,要勾选克隆空项目的一个选项。

2015-10-10