前言
Git作为一种开源的分布式版本控制系统,能够在计算机上对软件源代码、文档以及各类文件进行高速、高效的管理。利用Git的功能,用户能在不同的团队之间进行协作,实现相对简便的沟通与合作。
搭建Git Server
- 使用具有管理员权限的帐户登录 DSM。
- 转到 控制面板 > 终端机 & SNMP > 终端机,启用 SSH 服务。
- 转到 控制面板 > 共享文件夹,为 Git 仓库创建一个共享文件夹。
- 在计算机上,输入以下命令通过 SSH 访问 Synology NAS:
ssh [Synology NAS管理员用户名]@[Synology NAS IP地址或主机名] -p [SSH的端口号]
例如,您可以输入:
ssh myadminuser@192.168.1.2 -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 访问存储库。
- 访问位于 Synology NAS 上的 Git 存储库。为了成功访问存储库,请确保:
- 已启用 SSH 服务。
- 您使用的用户帐户具有访问存储库的权限。
- 您使用的用户帐户对存储库所在的共享文件夹具有读/写权限。
注意:
- 默认用户(root、admin 和 guest)的权限无法编辑。
- 除了 Git 服务器的用户权限列表之外,所有 Git 服务器的操作都应通过 SSH 执行,而不是 DSM 桌面。
- Git 用户将受到名为 git-shell 的 shell 工具的限制,以确保帐户仅用于 Git 操作。因此,Git 用户只能使用 SSH 连接推送和拉取 Git 存储库,并且无法完全访问 DSM。
从DSM克隆Git存储库到本地目录
- 使用以下命令从 DSM 克隆存储库到本地目录:
git clone ssh://[您的用户名]@[Synology NAS IP地址或主机名]:[您的存储库]例如,您可以输入以下命令:
git clone ssh://mygituser@192.168.1.2:/volume1/mysharefolder/myrepo1 - 使用以下命令访问本地目录中的存储库:
cd [您的存储库]例如,您可以输入以下命令:
cd /volume1/mysharefolder/myrepo1请注意,在执行上述命令之前,请确保您当前位于正确的 Git 存储库目录中。
同时推送到 GitHub 和群晖的 Git 仓库
首先,确保您已在 GitHub 和群晖上分别创建 Git 仓库。然后,在本地计算机上,克隆您的 GitHub 仓库:
git clone https://github.com/yourusername/yourrepository.git
在本地仓库中,添加群晖 Git 仓库作为一个新的远程:
git remote add synology ssh://yourusername@your_nas_ip_or_domain:your_port/volume1/Gits/your_repository.git
注意将 yourusername、your_nas_ip_or_domain、your_port 和 your_repository.git 替换为实际的值。接下来,生成 SSH 密钥对(如果尚未生成),并将公钥添加到群晖的 SSH 设置中。在群晖管理界面,导航到“控制面板” > “用户” > “编辑” > “应用程序权限” > “SSH 密钥”选项卡,将公钥粘贴到此处。
现在,您可以在本地对代码进行更改并提交。当您准备好将更改推送到两个远程仓库时,只需执行以下命令:
git push origin maingit push synology main这将分别将您的更改推送到 GitHub 和群晖的 Git 仓库。如此一来,您的代码将同时存在于两个远程仓库中,实现了双重备份和版本控制。
在这里,我们简要介绍 SourceTree,这是一个免费的可视化 Git 客户端,可以帮助您轻松管理多个远程仓库。

在 SourceTree 中,您可以查看、克隆、提交和推送更改,并轻松切换不同的远程仓库。SourceTree 提供了一个直观的图形界面,让您无需使用命令行就能完成 Git 操作。为了更好地管理多个远程仓库,您可以在 SourceTree 中添加 GitHub 和群晖的 Git 仓库,并使用可视化界面完成推送操作。
文献
- Synology. Git Server. version 7.

