按群晖的Git Server说明文档创建失败,找到一些资料后自己验证如下,github.com的方式也类似,但这里就没提及了
On 群晖
在用户界面创建新用户git,没有特殊权限,放到users组即可
用ssh的root用户登录到群晖,vi /etc/passwd 文件
修改git用户的home目录
/var/services/homes/git to /volume1/git
修改登录后的 shell
/sbin/nologin to /bin/ash
切换为git用户:
DiskStation2# su - git
修改git用户home目录的权限为700
DiskStation2# chmod 700 /volume1/git/
再在/volume1/git/创建一个.ssh文件夹, 还是权限700
将你Mac当前用户下的.ss/id_rsa.pub中的内容copy / paste到群晖上面~git/.ssh/authorized_keys里面
On Mac 测试一下
ssh git@diskstation ls /etc/shells
输出正常的话就可以成功ssh了
On 群晖
用git用户登录,创建repositories文件夹
cd to it, then create a git repo:
git@DiskStation2% echo $PWD
/volume1/git/repositories
创建一个git仓库
git@DiskStation2% mkdir test.git
git@DiskStation2% cd test.git/
git@DiskStation2% git init --bare //空仓库需要
Initialized empty Git repository in /volume1/git/repositories/test.git/
git@DiskStation2% ls
HEAD branches config description hooks info objects refs
OK,已经在Git Server创建了test的Repositiory,先暂停回到Mac上
On Mac
现在终端里面,进入项目目录执行:
git remote add lan ssh://git@192.168.1.1/volume2/git/repositories/test.git
git push -u lan master
上面的代码将本地的仓库连接到Git Sever,并且将代码提交到master分支上
提交后看返回是否正常,如正常就没问题了
注意,如果是服务器已有非空repository,则会出现类似这种提示:
! [rejected] master -> master (fetch first)
则需要先pull到本地
git pull lan master
然后再git push -u lan master
push没问题后,回到Xcode里面
On Xcode
试试吧
新建的文件,Xcode会提示一个A标签,表示是Added的。
编辑的文件,Xcode会提示一个M标签,表示是Modified的。
选中要更新的文件,右键-->Source Control-->Commit Selected Files 通过此操作将变更提交到本地的仓库中。
选中要更新的文件,File菜单-->Source Control-->Push 将本地变化存储到远程服务器中。
参考这个文章:http://ti57.blogspot.com/2013/01/how-to-setup-git-server-on-synology-nas.html