安装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/gitrepos/
输入以下命令在计算机上为 Git 存储库创建文件夹:
mkdir [文件夹名称]
输入以下命令将当前位置更改为新文件夹:
cd [文件夹名称]
输入以下命令,在步骤 6 中创建的文件夹下创建 Git bare 存储库:
git init --bare
本地项目提交到 NAS 上的 Git 服务
1. 确保 NAS 上的 Git 服务已准备好
- 在 NAS 上创建一个 Git 仓库(裸仓库),例如:
cd /volume1/git_repos
git init --bare gittest.git
--bare
表示创建一个裸仓库,适合作为远程仓库使用。- 确保仓库路径正确,并且用户有读写权限。
- 确保 NAS 的 Git 服务已启用,并且可以通过 SSH 访问。
2. 在本地初始化 Git 仓库
如果你的本地项目还没有 Git 仓库,需要先初始化:
cd /path/to/your/local/project
git init
3. 将本地项目添加到 Git 仓库
将本地文件添加到 Git 暂存区并提交:
git add .
git commit -m "Initial commit"
4. 添加远程仓库
将 NAS 上的 Git 仓库添加为远程仓库:
git remote add origin ssh://paulloo@192.168.10.110/volume1/git_repos/gittest.git
origin
是远程仓库的别名,可以自定义。- 确保 SSH 地址格式正确。
5. 推送到 NAS 的 Git 仓库
将本地代码推送到远程仓库:
git push -u origin main
main
是默认分支名称,如果你的本地分支名称不同(例如master
),请替换为对应的分支名称。-u
参数会将本地分支与远程分支关联,后续可以直接使用git push
和git pull
。
6. 验证推送是否成功
- 在 NAS 上检查仓库内容:
cd /volume1/git_repos/gittest.git
git log
如果能看到提交记录,说明推送成功。
- 或者在本地克隆 NAS 上的仓库,验证内容是否一致:
git clone ssh://paulloo@192.168.10.110/volume1/git_repos/gittest.git
7. 后续操作
- 拉取更新:如果 NAS 上的仓库有更新,可以通过以下命令拉取:
git pull origin main
- 推送更新:本地修改后,可以通过以下命令推送:
git add .
git commit -m "Your commit message"
git push origin main
注意事项
- SSH 密钥:如果使用 SSH 认证,确保本地 SSH 密钥已添加到 NAS 的
~/.ssh/authorized_keys
文件中。 - 权限问题:确保 NAS 上的 Git 仓库目录对用户
paulloo
有读写权限。 - 网络访问:确保本地机器可以通过 SSH 访问 NAS 的 IP 地址(如
192.168.10.110
)。 - Git 版本:确保 NAS 和本地的 Git 版本兼容。
示例完整流程
假设本地项目路径为 /home/paulloo/myproject
,NAS 上的 Git 仓库路径为 /volume1/git_repos/gittest.git
,操作如下:
# 进入本地项目目录
cd /home/paulloo/myproject
# 初始化 Git 仓库
git init
# 添加文件到暂存区
git add .
# 提交更改
git commit -m "Initial commit"
# 添加远程仓库
git remote add origin ssh://paulloo@192.168.10.110/volume1/git_repos/gittest.git
# 推送到远程仓库
git push -u origin main
完成以上步骤后,本地项目就会成功提交到 NAS 的 Git 仓库中。
正文完