您的位置 首页 星座趣味

生化危机5存档(生化危机5pc存档)

如何保障存档不丢失?到目前为止,我们的所有操作都是在本地执行的。也就是说,存档信息和游戏内容实际是在一台机器上。此时,如果游戏机硬盘坏了,那所有的存档也都会丢失。你无法保障你的游戏机硬盘永远不坏。对于…

如何保障存档不丢失?

到目前为止,我们的所有操作都是在本地执行的。也就是说,存档信息和游戏内容实际是在一台机器上。此时,如果游戏机硬盘坏了,那所有的存档也都会丢失。你无法保障你的游戏机硬盘永远不坏。对于这个问题,我们该如何来解决呢?

一个简单的方式,就是我们存档完之后,将存档文件再拷贝到另外一个硬盘上。如果当前游戏硬盘挂掉了,我们可以将备份硬盘中的存档拷贝回来就可以了。

大致流程如下所示:

对游戏进行存档操作将备份硬盘连接到游戏机将存档拷贝到备份硬盘每个存档占用独立的目录,目录取不同的名字当需要恢复时,将对应目录中的存档拷贝回游戏机即可

如果使用了Git,那就不需要每次都创建一个独立目录了,每次覆盖即可。在将存档拷贝回游戏机后,通过Git指令来切换存档即可。

但是,你每次还是要手动将存档全量拷贝到备份硬盘上。假设你的存档非常的大,有10G,每次拷贝都需要很长的时间。如果你某次只是玩了5分钟,存档只修改了一点,为了安全,你可能还是需要花30分钟来备份存档。

有没有办法每次只备份修改的存档呢?使用Git的远程仓库就可以满足上面的需求。

远程仓库

我们通过Git来模拟一下上面所述的完整备份流程。

首先,我们随便找个目录,执行如下命令初始化一个git仓库:

git init mario-bak

然后,我们进入mario-bak目录中,执行git log命令,你会发现这是一个空仓库,什么都没有:

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)

接着,我们执行一下如下命令,同意接收远程推送:

git config receive.denyCurrentBranch ignore

现在,我们回到mario目录中。执行如下命令,将mario-bak仓库作为mario仓库的远程仓库。

git remote add origin file://${mario-bak全路径}/.git

接着,我们执行如下命令,将mario中的本地存档信息推送到远程仓库上。

git push origin master

我们再回到mario-bak目录中,执行git log指令,可以看到里面已经有存档信息了,并且存档记录与mario中的一模一样。

我们继续切回到mario目录中,再进行游戏。假设进行到了1-4关。

******** ************ ..... ........... ....... ........... * 1 - 4 ******* ...***.****.*.... ....**********..... ....**** *****....

然后进行存档:

git add player.txtgit commit -m &39;m04&39;

执行git log命令,可以看到如下记录:

commit e2bbe8c77c70f870d3f46542649f8e269d0a01fc (HEAD -> master)Author: 一瑜一琂Date: Wed Mar 16 22:12:03 2022 +0800m04commit d3a1237365e2b2f1ceaf2939b35f6fca5ce99812 (origin/master)......commit b0d5581b592f3d5faaca744e88eed604f2289904Author: 一瑜一琂Date: Wed Mar 16 14:05:19 2022 +0800m00

第1~5行,是新增的存档记录,注意第7行,最后有个(origin/master),表示远程存档只记录到了此处,最新的存档还没有,我们执行一下git push origin master,然后再次执行git log,可以看到如下信息:

commit e2bbe8c77c70f870d3f46542649f8e269d0a01fc (HEAD -> master, origin/master)Author: 一瑜一琂Date: Wed Mar 16 22:12:03 2022 +0800m04commit d3a1237365e2b2f1ceaf2939b35f6fca5ce99812......commit b0d5581b592f3d5faaca744e88eed604f2289904Author: 一瑜一琂Date: Wed Mar 16 14:05:19 2022 +0800m00

注意第1行,远程分支也记录到了这里。我们切换到mario-bak目录中,执行git log命令,可以看到如下信息:

commit e2bbe8c77c70f870d3f46542649f8e269d0a01fc (HEAD -> master)Author: 一瑜一琂Date: Wed Mar 16 22:12:03 2022 +0800m04commit d3a1237365e2b2f1ceaf2939b35f6fca5ce99812......commit b0d5581b592f3d5faaca744e88eed604f2289904Author: 一瑜一琂Date: Wed Mar 16 14:05:19 2022 +0800m00

可以看到,mario-bak中的记录和mario中的完全一致。

但是,我们会发现,mario-bak目录下,根本就没有player.txt文件。这个文件到哪去了呢?我们执行一下git status命令,可以看到如下信息:

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)0

下面显示player.txt文件被删除了!但是,我们根本就没有删除这个文件,这里我们先不关注。

我们执行一下git reset --hard命令来恢复一下文件,执行完成后,你就会发现player.txt文件出现了,我们看一下player.txt文件中的内容:

******** ************ ..... ........... ....... ........... * 1 - 4 ******* ...***.****.*.... ....**********..... ....**** *****....

和mario中的内容是完全一致的。

同时你还会发现,mario中的load-00分支的存档信息也全部在mario-bak中。

至此,我们就可以通过远程仓库来保存存档了。

此时如果我们本地的mario存档丢失了怎么办呢?我们可以通过如下命令进行恢复

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)2

进入到mario-recovery中,你会发现里面的存档信息和mario中的一模一样。

上述流程如下图所示:

生化危机5存档(生化危机5pc存档) 第1张

裸库

现在,我们只需要在我们的mario目录中进行相关操作,就可以实现存档的保存、恢复、远程备份等操作。根本不用关心远程仓库,更不会关心远程仓库目录里有没有对应的文档信息。所以,实际上远程仓库目录中的文档本身没有任何用处,我们只需要提交记录即可。

git支持称为「裸库」的版本库,即是为这种场景准备的。我们通过如下命令来创建一个裸库。

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)3

我们把mario-bak这个远程仓库给删了,不用担心数据会丢失,我们本地有一份,随时都可以恢复。

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)4

接着,我们进入到我们的游戏档案目录mario里

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)5

将远程仓库配置删除,将mario-remote添加为新的远程仓库。

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)6

注意这里路径的差异,没有了后面的.git。

然后我们直接将存档数据推送过去。

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)7

现在我们来验证一下我们有没有推送过去呢?我们进入mario-remote目录,发现里面的目录结构和我们的本地存档目录完全不同。

我们现在先不管这些,我们可以把裸库克隆下来,来验证我们的推送是否成功了。

On branch masterNo commits yetnothing to commit (create/copy files and use &34;git add&34; to track)8

你会发现存档都在,说明我们已经将数据推送到裸库上去了。

至此为止,你就得到了前文中的git结构了。你可以安心的继续进行游戏了。

总结

从上面的流程,你应该可以感觉到,git的远程版本库和本地版本库其实没什么区别:

你的版本库相对于你自己来说是本地版本库,而相对于别人来说,就是远程版本库;反过来,别人的版本库相对于他自己就是本地版本库,而相对于你就是远程版本库。

这也就是git被称为是分布式版本库的原因。

下面,我们来看一看,多人游戏时,如何进行存档的管理。

本文来自网络,不代表星辰基尔立场,转载请注明出处:https://shensogou.duolatom.com/186068.html

作者: 耳机迷

返回顶部