想要像Github或者Gitlab那样存放自己的代码,搭建一个私有代码平台,而这时正好又有一台群晖NAS,那恭喜你,可以实现。
进入控制面板->用户账号->新增
名称可以设置成git,密码随意
加入用户群组一定要选择administrators,因为只有这个群组才能执行ssh命令
共享文件夹访要给homes开通访问权限,才能访问上git
$ cd /volume1/
$ sudo mkdir git_repos
$ cd git_repos/
$ sudo mkdir gittest
初始化git仓库
什么是git init --bare,和git init有什么区别
平时我们使用的是git init,但是用git init初始化的版本库用户也可以在该目录下执行所有的git方面的操作。但别的用户在将更新push上来的时候太容易出现冲突。
比如有用户在该目录(就称为远端仓库)下执行git操作,且有两个分支(master 和 test),当前在master分支下。另一个用户想把自己在本地仓库(就称为本地仓库)的master分支的更新提交到远端仓库的master分支,他就想当然的敲了git push origin master,这样就会出现冲突。
因为远端仓库的用户正在master的分支上操作,而你又要把更新提交到这个master分支上,当然就出错了。
解决办法就是使用”git init --bare”方法创建一个所谓的裸仓库,之所以叫裸仓库是因为这个仓库只保存git历史提交的版本信息,而不允许用户在上面进行各种git操作,如果你硬要操作的话,只会得到错误提示(”This operation must be run in a work tree”)
$ cd gittest
$ git init --bare
ls看一下文件夹创建了什么,出现下面的文件说明创建成功了
6. 最重要的一步,就是给git_repos代码库文件夹更改权限
$ sudo chown -R git:users git_repos/
$ git clone ssh://git@192.168.101.18:14444/volume1/git_repos/gittest
2. 创建一个文件push上去
$ cd gittest
$ echo "123123" > test2.txt
$ git add .
$ git commit -m "add test2.txt"
$ git push origin master
基本功能测试成功,可以在家流畅使用git server啦。