小天管理 发表于 6月17日 发表于 6月17日 git config alias.backup '!f() { ([ -f "/path/to/git-backup/$1/HEAD" ] || git init --bare "/path/to/git-backup/$1") && (git remote set-url --delete origin "/path/to/git-backup/$1" 2>/dev/null; git remote set-url --add origin "/path/to/git-backup/$1"); }; f' cd /path/to/something git init git remote add origin git@github.com:username/something.git git backup something git remote -v # origin git@github.com:username/something.git (fetch) # origin git@github.com:username/something.git (push) # origin /path/to/git-backup/something (push) 如此在每次 push 到 github/gitlab 的同时,还会 push 到 /path/to/git-backup 下,然后再用备份工具对 /path/to/git-backup 进行备份,这样: 不用考虑排除哪些文件,不挑备份工具,备份脚本不复杂 不用考虑用的是什么 git hosting service 不需要额外运行个服务(本来是打算跑个 gitea/gogs 的,但是为了可以加密备份放弃了) 未解决: 并非本地做的一些变更提交,例如 actions 中产生的 未提交的变更,其实我并没有这个需求,我认为只对提交负责挺好的 代码以外的东西,例如 issues 、pull requests 、discussions 中的讨论,尽管我没有这个需求 被 .gitignore 排除掉的秘密、配置文件,虽然以前提问过,站内有人推荐 git-crypt ,但我觉得我还需要一个别的方案 各位对此思路有什么想法和建议吗?
已推荐帖子
创建帐户或登录来提出意见
您需要成为会员才能提出意见
创建帐户
注册成为会员.只要几个简单步骤!
注册帐户登录
已经有帐户? 请在此处登录.
现在登录