一、写在前面
最近发现,之前创建的几篇笔记不小心被误删了,花了很长时间才恢复回来。要是有个系统能记录变更,并方便回退就好了!家里正好有个NAS服务器,搭建个Git Server刚好就能完美解决这个问题了。
本文记录下整个搭建过程,方便后续查阅。
二、基础环境配置
- 安装 Git Server进入 套件中心,搜索并安装 “Git Server”。安装后无需额外配置,保持默认启动即可。
选择允许访问:
- 创建共享文件夹进入 控制面板 > 共享文件夹,新建一个专门存放仓库的目录(如 git_repos)。建议取消”只允许管理员访问”,并赋予后续创建的 Git 用户读写权限。
- 创建专用用户(推荐)为了安全,建议在 控制面板 > 用户 中新建一个用户(如 git_user)。在”用户群组”中,确保该用户对 git_repos 文件夹有”读写”权限。
- 设置可读写:
由于NAS只允许Administrators组的用户使用SSH服务,所以要赋予管理员权限。
- 开启服务
- SSH:进入 控制面板 > 终端机和 SNMP,勾选”启动 SSH 服务”,端口默认 22(可修改)。
- 家目录:进入 控制面板 > 用户 > 高级设置,启用”家目录服务”。这一步能解决后续 SSH 连接时的路径报错问题。
三、创建裸仓库 (Bare Repository)
Git服务器需要的是裸仓库(不含工作区),这一步必须通过 SSH 命令行操作。
- SSH连接NAS在电脑上打开终端(Windows 可用 Git Bash 或 PowerShell),使用管理员账号连接:
ssh admin@你的NAS内网IP -p 你的SSH端口
- 初始化仓库连接成功后,执行以下命令创建裸仓库:
# 切换到共享文件夹
cd /volume1/git_repos
# 创建项目文件夹(通常以.git结尾)
sudo mkdir obsidian.git
cd obsidian.git
# 初始化裸仓库(关键步骤)
sudo git init --bare
- 修正权限(关键)为了让 git_user 能正常推送代码,需要将仓库目录的属主改为该用户:
# 回到共享文件夹上级目录
cd /volume1
# 递归修改属主(假设你的用户组是 users)
sudo chown -R git_user:users git_repos
四、本地客户端连接
现在你可以在本地电脑(已安装Git)上克隆和推送代码了。
- 克隆仓库
git clone ssh://git_user@你的NAS内网IP:SSH端口/volume1/git_repos/obsidian.git
首次连接会提示确认主机密钥,输入 git_user 的密码即可拉取代码。
- 配置免密登录(SSH 密钥)为了避免每次操作都输入密码,可以将本机的公钥添加到 NAS 上。 (1)生成本地密钥(如果已有 ~/.ssh/id_rsa.pub 可跳过):
ssh-keygen -t rsa
(2)上传公钥:将 id_rsa.pub 的内容复制到 NAS 上 git_user 的home目录中:
# 在 NAS 上操作(通过 SSH 登录后)
mkdir -p /var/services/homes/git_user/.ssh
echo "你的公钥内容" >> /var/services/homes/git_user/.ssh/authorized_keys
chmod 700 /var/services/homes/git_user/.ssh
chmod 600 /var/services/homes/git_user/.ssh/authorized_keys
完成后,本地再次 git push 将不再需要密码。
五、文档入库
# 1. 添加文件
git add .
# 2. 检查暂存的文件
git status
# 3. 提交
git commit -m "初次提交:添加 Obsidian 笔记"
# 4. 推送到远程
git push -u origin master
# 或
git push -u origin main
六、写在最后
到此为止,就成功在NAS上搭建了Git服务器,并将Obsidian的所有内容都纳入到Git管理,这样Obsidian中的所有变更都可以通过Git的历史记录查询和回退了。
后面可以考虑通过Obsidian+opencode+git做个自动入库的技能,这样就不用每次手动提交了!
© 版权声明
版权申明: 本页内容所含的文字、图片和音视频均转载自网络,转载的目的在于分享传递更多知识信息,并不代表本站赞同文章的观点和对文章的真实性负责。如其他媒体、网站或个人转载使用,请与著作权人联系,并自负法律责任。做为非盈利性个人网站,站长没能力也没权力承担任何经济及法律责任。如若本站的文章侵犯了你的相关权益,请联系站长删除或修正。谢谢。敬礼
