Synology DS216J 群晖NAS git server架设方法!

作者: admin 分类: 未分类 发布时间: 2016-12-20 10:52 ė5,057 浏览数 6没有评论
文章转自王牌软件
站长推荐:NSetup一键部署软件
一键式完成美化安装包制作,自动增量升级,数据统计,数字签名。应对各种复杂场景,脚本模块化拆分,常规复杂的脚本代码,图形化设置。无需专业的研发经验,轻松完成项目部署。(www.nsetup.cn)

最近单位购入一台Synology DS216J用作数据存储。

本人打算将一些项目的源代码也放在上面,他本身的套件中心提供了SVN SERVER和GIT SERVER。

设置SVN SERVER非常简单,基本上安装成功,设定账号,即可使用。

但是GIT SERVER的架设遇到了麻烦,按照他的帮助说明,是无法成功的,经过尝试,发现其实就是写帮助的人少写了一点内容(也就是目录权限的修改),即可解决。

现将解决方法记录如下,作为自己的备忘录,如果能帮助到有同样需求和同样麻烦的人,那么也是很开心的事情。

1.首先,进入DSM,然后在套件中心中找到GIT SERVER,下载安装即可。

2.看看DSM帮助中心对GIT SERVER使用的帮助:

 

这里鄙视一下写帮助的这个人,我严重怀疑群晖的工作人员是没有真的在他们机器上测试过GIT SERVER的。因为按照他帮助说的方法,你是不可能成功的。

遇到这个问题的时候我搜遍了网络,也没有第二个人有这个问题的描述,只是查找到不少从头安装GIT SERVER的文章,而且其中还充斥着很多无用的步骤。

3.正确的方法如下:

安装成功之后,在DSM中创建一个GIT用户,比如我创建的用户为jackwong,然后进入DSM左上的功能菜单,打开GIT SERVER窗口,将允许访问GIT库的用户打上勾。比如我就将jackwong这个用户打上了勾。

然后进入控制面板 > 终端机并启用 SSH 服务。

到这一步,DSM的设置任务就完成了。

接着通过SSH连接到你的这个DS216J上。登陆的时候当然采用root登陆,密码就是admin的密码。

登陆进去之后,就是Linux命令行操作了。

首先进入你的磁盘卷,一般名字是volumeX,X表示你创建的磁盘空间数量,一般这个机器就两个硬盘,一般就是volume1了

cd /volume1

接着创建一个git库目录

mkdir git_repos

然后再里面创建一个测试项目

cd git_repos

mkdir gittest

然后进入这个测试项目目录

cd gittest

进行GIT初始化

git init –bare

由于是root用户执行的操作,所以有一个最最重要的步骤,就是将这个宝库的整个目录的主人要修改为你的git用户

chown -R jackwong:users git_repos

如果你还想让其他用户也一起共享的话,

还需要将其他用户的权限设置为可写

chmod -R 775 git_repos

当然,这里的git_repos是整个库目录,我是为了省事情,如果不同项目需要区别对待,那就对里面的项目目录进行设置就可以了。

总的原则就是某个用户要想能推送文件到服务器,必须打开这个用户对整个项目目录,包括子目录的写权限,否则就会失败。

 

到这里,服务器就设置完毕了。

在客户端进入git 命令行,测试一下是否可以下载和上传。

git clone ssh://jackwong@192.168.0.1/volume1/git_repos/gittest

然后再本地添加一个文件并提交到本地版本库中

echo “t1.txt” >t1.txt

git add t1.txt

git commit -m “add t1.txt”

最后测试一下推送到GIT SERVER上

git push origin master

显示成功!

 

如果要添加其他用户,只需要在DSM中创建账号,并且在GIT SERVER界面中允许访问的勾打上。并保证这个用户在git_repos下的对应项目文件夹中具有写权限就可以了。

 

PS :GIT的使用和SVN这类中心式的架构有很大不同。要把本地项目创建到GIT SERVER上,需要费点周折。

简单的说可以按照如下步骤:

1.先在本地创建项目,有个项目目录

2.然后在本地的这个项目目录中执行git –bare init进行初始化。

3.然后将需要提交的文件提交到本地

4.然后将项目目录COPY到服务器上,只COPY .git 目录就行,其他工作目录不用COPY的。

5.在本地就可以推送到远程服务器上了。

还有一种方法:

如果本地初始化的时候使用的是git init,那么推送就会出现问题。

解决方法是将本地的目录全部COPY到服务器上。

然后再服务器对应目录下面执行:

git config –bool core.bare true
接着删除掉除.git目录之外的所有文件和目录即可。
这样本地就能顺利推送了。

当然直接使用

git clone –bare hello hello.git
这样直接导出裸库,然后将hello.git 这个目录直接上传到服务器上也可以。不过地址需要加上hello.git这个的目录。



只回答业务咨询点击这里给我发消息 点击这里给我发消息

学习日记,兼职软件设计,软件修改,毕业设计。

本文出自 学习日记,转载时请注明出处及相应链接。

本文永久链接: https://www.softwareace.cn/?p=1565

0

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">


Ɣ回顶部

无觅相关文章插件,快速提升流量