使用Git自动备份我的世界存档
托管平台的选择
GitHub
GitHub是目前最大的在线代码托管网站,其实也提供私有部署解决方案。GitHub 阻止超过 100 MB 的推送,即单个文件最大100MB,如果尝试添加或更新大于 50 MB 的文件,您将从 Git 收到警告。建议仓库保持较小,理想情况下小于 1 GB,强烈建议小于 5 GB。较小的仓库克隆速度更快,使用和维护更容易。缺点是国内访问速度慢,国内服务器可能会遇到连接不上的情况。
Gitee
国内的Git的代码托管服务平台,限制比Github严格,优点是国内访问速度快。
GitLab
Gitlab目前也有在线代码托管服务,但用得更多的还是私有部署的Gitlab。私有部署的Gitlab,仓库一般只限制了上传文件的大小。从代码的私有性上来看,GitLab 是一个更好的选择。缺点是服务器在国外,优点是Gitlab有开源社区版,可以部署到自己的服务器上。
Gogs
Gogs 旨在构建一个简单、稳定和可扩展的自托管 Git 服务,可以以最无痛的方式进行设置。使用 Go,这可以通过跨 Go 支持的所有平台(包括 Linux、macOS、Windows 和基于 ARM 的系统)的独立二进制分发来完成。优点是开源,方便部署,硬件要求低,使用方法和GitHub类似。
准备工作
-
你的我的世界服务器
-
Github账号
创建仓库
打开GitHub首页
这里我选择了公开仓库,其实一般也没人看,还方便后面推送。
这就是你的仓库地址,记住他。
推送前准备
Git安装
首先登录你的MC所在服务器,(Windows打开Git Bash)用下方命令查看Git版本(大多数服务器好像自带此命令,不用特意安装)
git --version #查看Git版本
若返回 git --version ****
证明Git已安装,若不是请安装Git。
开始推送
ssh到你我的世界服务端所在服务器,例如我要备份我的世界存档文件夹world
/ ,那么我们先cd到此目录。,然后执行以下命令。
git config --global init.defaultBranch main
由于Github在2020年把主分支由master改为main,所以要先执行上面这条命令把Git的默认分支更改为main。如果你用的是Gitee,则不需要输入这条命令。
Git用户配置
git config --global user.name "***" # ***替换为你的Github用户名,就是登录时输入的那个
git config --global user.email "***" # ***替换为你Github的邮箱
Git设置及推送
git init
git add .
git commit -m "第一次提交" #双引号内为提交的注释
git remote add origin *** #将***替换为你的仓库地址
若远程仓库不为空,例如有 README.md
文件请先执行同步指令
git pull --rebase origin main
git push -u origin main
推送时Windows用户会弹出授权窗口,授权即可,有些Linux用户推送到Gitee可能会重复提示让输入用户名和密码的情况,此时请使用ssh方法借助ssh公钥实现推送,经测试推送到GitHub不会出现这种情况。
不出意外,此时你已经推送成功了,接下来我们要实现自动推送。
自动推送
设置自动推送文件
新建一个 push.sh
文件(Windows用户已经安装Git,所以也可以执行.sh文件)输入以下代码,注意把分支名填对。
#!/bin/bash
git status
echo "####### 开始自动Git #######"
current_time=$(date "+%Y/%m/%d -%H:%M:%S") # 获取当前时间
echo ${current_time} # 显示当前时间
git add .
git commit -m "modified ${current_time}" # 远程仓库可以看到是什么时间修改的...
git push origin main
echo "####### 自动Git完成 #######"
sleep 2s
双击运行它,你可能会遇到在Windows在能运行此文件,但在Linux下不能,错误提示bad interpreter: No such file or directory
这是因为Linux无法识别出Windows的DOS格式,此时只需将文件格式转换成unix的即可,方法如下。
vi push.sh #编辑出错文件
:set ff #报错文件格式是DOS
:set ff=unix #修改格式
:wq 保存退出
这时重新执行,可以发现执行成功。
设置自动推送任务
Windows用户请借助 定时任务 实现自动执行脚本文件 参考文档
Linux用户请借助 Crontab 命令实现自动执行脚本文件 参考文档