在多台 Mac 间同步笔记或脚本可以使用 Git ,它能帮我们保留历史、解决冲突,但手动 git add/commit/push 容易忘。下面这套做法用 LaunchAgents 定时执行一个 Git 脚本,把指定仓库的修改自动提交并推送到 GitHub(或任意 Git 远端),既省事又留痕。
思路与准备
- 一个可访问的 Git 仓库,例如
[email protected]:demo/notes-sync.git,本机已配置好 SSH Key 或 Token。 - 仓库路径假设为
/Users/demo/Workspace/notes-sync,请替换成自己的目录。 - 写一个自动提交脚本,再用 LaunchAgents 每隔几分钟调用一次。
编写自动提交脚本
新建脚本 /Users/demo/Workspace/git-auto-commit.sh:
|
赋权:
chmod +x /Users/demo/Workspace/git-auto-commit.sh |
配置 LaunchAgents 定时执行
在 ~/Library/LaunchAgents 新建 plist 文件 com.demo.git-auto-commit.plist:
|
加载与调试:
launchctl load ~/Library/LaunchAgents/com.demo.git-auto-commit.plist |
如需停止或卸载:
launchctl stop com.demo.git-auto-commit |
关键注意事项
- 认证方式:优先用 SSH Key,若用 Token 写在脚本里,记得用只读权限并限制作用域,或在 Keychain 保存环境变量再在脚本里读取。
- 分支一致性:脚本里固定
main(或master),与远端分支保持一致;多人协作时保留git pull --rebase以减少冲突。 - 执行频率:
StartInterval300 秒适合笔记类场景;频率过高会增加推送次数,可按仓库活跃度调整。 - 忽略敏感文件:在
.gitignore中排除缓存、日志、临时文件,避免不必要的提交。 - 错误兜底:查看
git-auto-commit-error.log,常见问题是网络不通、权限不足或本地/远端存在冲突。
这样配置后,Mac 会在后台定时把仓库的变更自动提交并推送,跨设备同步靠 Git 即可完成,同时保留完整历史记录。