作为程序员肯定没有不知道Git的。而我们有时自己收集和维护的一些代码(或者私活),却没有一个方便可靠的Git服务器来保管。
但是通过群晖NAS提供的Git Server,我们可以轻松在家中建立一个属于自己的私有代码仓库。它不仅支持建立轻量级Git服务器,对于真正小企业团队开发,它还支持通过套件中心安装强大的GitLab,完全可以满足50人开发团队的项目代码管理需求。
什么?你还在用SVN?没关系,群晖NAS也提供了SVN Server的支持,也是一键安装。不过作为过来人,还是建议赶紧迁移到Git吧!
公司用群晖NAS来管理内部的代码,我把代码、数据库都托管再NAS上面,因为NAS有两块硬盘,本身就具备容灾能力,所以,就直接放上面吧,定时备份下来即可。这篇文章,主要是来讲一下如何再NAS上搭建git服务器,并且初始化一个项目。具体的git操作方法就不讲了。
1. 安装git server和开启相关服务
群晖NAS采用DSM管理系统,用web登陆到NAS上面去,进入“套件中心”,找到git server,安装它。
安装好之后,建议创建一个用户来专门从服务器上克隆、拉去和提交。
进入“控制面板”“用户账户”,然后新增一个用户,我新增的是git,为了坚持简单问题复杂化的原则,我又创建了一个git用户组,并且修改了用户和用户组的权限,其他任何权限什么的都没有,不能登陆,不能同步文件,不能ssh登陆。
接下来,我们要通过ssh登陆到服务器上面去,所以要开通ssh权限。
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客户端克隆时,要勾选克隆空项目的一个选项。