Git Server
Git 是一个开放源代码的分布式版本控制系统,可让您快速高效地维护计算机中的软件源代码、文档和任何类型的文件。通过 Git,您可以更轻松地同时与不同人群协作。
若要创建 Git 存储库:
- 请用具有管理权限的帐户登录 DSM。
- 进入控制面板 > 终端机和 SNMP > 终端机,然后启用 SSH 服务。
- 进入控制面板>共享文件夹,为 Git 存储库创建共享文件夹。
- 在计算机上,输入以下命令以通过 SSH 访问 Synology NAS:
- ssh [Synology NAS 管理员用户名]@[Synology NAS IP 地址或主机名] -p [SSH 的端口号]
- 例如,可以输入:
ssh [email protected] -p 22 - 输入以下命令将当前目录更改为在步骤 3 中创建的共享文件夹:
- cd /[存储空间名称]/[共享文件夹名称]/
- 例如,可以输入:
cd /volume1/mysharefolder/ - 输入以下命令在计算机上为 Git 存储库创建文件夹:
- mkdir [文件夹名称]
- 输入以下命令将当前位置更改为新文件夹:
- cd [文件夹名称]
- 输入以下命令,在步骤 6 中创建的文件夹下创建 Git bare 存储库:
- git init --bare
注:
- 请勿使用 root 权限执行以上命令。
若要允许用户使用 Git:
- 请用具有管理员权限的帐户登录 DSM。
- 进入控制面板 > 终端机和 SNMP > 终端机,并启用 SSH 服务以便用户可通过 SSH 访问 Git 存储库。
- 进入控制面板 > 用户和群组并创建用户。向用户授予 Git 存储库共享文件夹的读/写权限。
- 进入套件中心 > 已安装并打开 Git Server 套件。
- 允许用户通过 git-shell 访问存储库。
注:
- 无法编辑默认用户(root、admin 和 guest)的权限。
- 除了 Git Server 的用户权限列表外,Git Server 的所有操作都应通过 SSH(而不是 DSM 桌面)来执行。
- Git 用户被限制为使用名为 git-shell 的 shell 工具进行 Git 相关活动。此登录 shell 将应用于 Git 用户,以确保这些帐户仅用于 Git 操作。因此,Git 用户只能使用 SSH 连接来推送和拉取 Git 存储库,而没有 DSM 的完整访问权限。
若要将 Git 存储库从 DSM 克隆到本地目录:
- 在计算机上安装 Git。
- 访问 Synology NAS 上的 Git 存储库。若要成功访问存储库,请确保:SSH 服务已启用。所用的用户帐户具有访问存储库的权限。所用的用户帐户对存储库所在的共享文件夹拥有读/写权限。
- 输入以下命令将存储库从 DSM 克隆到本地目录:
- git clone ssh://[您的用户名]@[Synology NAS IP 地址或主机名]:[您的存储库]
- 例如,可以输入:
git clone ssh://[email protected]:/volume1/mysharefolder/myrepo1 - 使用以下命令可从本地目录访问存储库:
- cd [您的存储库]
- 例如,可以输入:
cd /volume1/mysharefolder/myrepo1
================================================
以上内容转载自群晖的官网,我已经按上述步骤操作成功。因为最近在用python+manim生成一些演示动画视频,但是人经常在多地跑,工作的电脑也不一样,想把这些代码管理起来,无论身在何地,只要有电脑就可以同步服务器的代码仓库继续编写,确实方便不少。
需要注意的几点:
1、先要在NAS上安装Git Server套件。
2、因为我是先有代码后建仓库,所以需要注意的是要先用管理员账号ssh登录到群晖上建立一个空的远程仓库,本地的代码在通过git remote命令添加远程仓库,然后就可以commit和push了。
3、还有一点就是运营商通常都会把默认的ssh端口22屏蔽,所以开启NAS的SSH功能时一定要记得把默认的端口号修改掉,当然路由器里还要添加修改后的端口号的映射到NAS上,外网才能正常访问。
4、NAS上要建立一个非管理员账号,用于本地仓库和远程仓库的git命令交互。