【Git】【服务器启动器】使用Git进行数据恢复的方法
本文是作为《Minecraft JE》服务器管理系统Server Starter的系列文章来撰写的。
虽然使用了一些特殊的词汇,如ShareWorld等,但如果您对此有兴趣,也可以看一下。
基本前提
在Git中,如果在存储库内进行更改,您可以通过进行称为commit的操作来保存更改。因此,您也可以将数据还原到保存了每个更改的commit的时间点,并与分支功能结合使用,这在协同开发等场景中广泛使用。
然而,Git规定了只能基于提交的节点来进行回溯,这是当然的事情。
如果在进行了一些更改后一段时间没有提交,可能会很难回到期望的时间点。
确认修复顺序
将当前目录更改为包含存储库(本例中为ShareWorld)的文件夹。
随后,如果要使用远程存储库将存储库更新为最新状态,则执行pull操作。
cd ..../ShareWorld (絶対パス or 相対パスで指定します)
git pull
通过输入 git log 命令,可以显示以往的提交记录列表。为了回退到想要的提交记录,可以将该提交记录的提交编号(如 b977060fa95590dd74222b81cef5332a0128d49b)记下来(复制)。
$> git log
commit b977060fa95590dd74222b81cef5332a0128d49b (HEAD -> master)
Author: UserName <E-mail Address>
Date: Mon Jan 1 00:00:00 0000 +0900
--Commit Message--
commit 98f895cbca9e92262a8fadb72109d06ee332141c
Author: UserName <E-mail Address>
Date: Thu Jan 2 00:00:00 0000 +0900
--Commit Message--
:
试着获取实际的原始数据。
由于前期准备工作已经完成,现在可以实际上将数据恢复到之前的commit时点。
如果要与最新的仓库数据进行比较,请先将仓库文件夹另存为副本,并在该副本文件夹内进行恢复操作。
在Git中熟练掌握分支操作的高级用户不需要做这样的事情,但对于初学者来说,建议他们复制以确保稳定的工作。
在进行恢复操作的文件夹中设置当前目录,然后输入以下命令以恢复数据。
git checkout (調べたcommit番号)
git checkout master <------------ これは元のレポジトリでそのまま復旧作業を行っている場合は打つ必要のあるコマンド
这次我们在存储库中,从原来的分支中退出一次,然后创建了一个新的恢复数据分支。
如果您不打算在新建的恢复数据分支上继续工作,那么您就没有必要继续停留在该分支上,因此我们会输入命令返回到main分支。
因此,如果您能熟练使用分支,可以同时进行恢复数据的编辑和主要的编辑,并在合适的时机将分支合并,这种用法也是可行的,但由于与本文的主旨无关,所以这里不涉及该方面的内容。
输入命令后,请确认文件夹中的数据是否已经恢复,如果是则表示成功。
将恢复的数据应用/更新/同步
使用复原数据编辑了原始最新数据之后,需要保存这些更改。
输入以下命令以保存更改。
只有使用了远程仓库的用户才需要输入git push命令。
git add -A
git commit -m "Commit Message"
git push
最后输入 “git status”,如果没有出现任何错误,则表示工作结束。