文章目录
问题说明
有时候会遇到这样一种情况:改错了某个地方,然后想退回到之前保存的版本。这时候笨方法是每次保存都复制一份.mfx文件(但是这方法最稳妥)。聪明一点的办法就是利用mfix自带的git。大概是20.3以后的版本都有这个功能。
今天用了下20.4.3版本打开旧版本的deck文件。打开不要紧,要紧的是不小心保存了,这就通常会导致版本不兼容。然后我的算例编译的时候就报错了。没办法,只能版本回退了。之前备份的方法都是采用自己手动复制的笨方法,但是很显然GUI里面是自带git的,正好借着这个机会探索下这个新功能。
操作方法
GUI中查看版本
如图
点击GUI下方的history选项卡就能看到git保存的历史版本。每次我们点击GUI上的保存按钮,实际上除了保存修改的内容以外,还自动进行了git操作(应该是git add之类的)。
最左边可以看到版本号。还能看到保存的时间。以及修改的内容。可见我这次保存把MFiX版本改为了20.4.3导致我出现bug,只要退回到这个版本的前一个版本就行了。
即我想要取消掉1分钟前(编号287)和4分钟前(286)保存的这两个版本,回退到2月19号那个版本(285)。
也可以在命令行看到各个版本,只要在该文件夹输入git log即可。
版本回退的方法 git checkout(2021-4-30更新)
在当前文件夹下打开终端
git checkout 285
其中285版本标签,根据你自己的情况更改
之前使用reset --hard会出现标签冲突问题。改为git checkout后不会出现这种问题。
以下为旧的使用方法(已废弃),现在已更新为使用git checkout而非git reset --hard(会出现标签冲突)
那么怎么回退呢?
其实只要一行命令就够了。
git reset --hard 285
最后那个285意味着我们退回到285版本,也就是2月19日保存的版本。
我们看下editor里是不是成功了。
成功。原文:注意这时候要点击GUI的保存才能真正保存了我们的操作。同时会生成新的一个版本即288。(有时会产生版本号冲突,一般来说无视就好。)
勘误2021-3-11:今天试了下,之前说错了。注意不要保存,不要点GUI的保存。如果保存了就没法退回了。直接点open
project,然后重新打开这个算例。
git reflog 查看已回退的所有操作(补充2021-04-29)
另外,
git reflog
这个命令可以看到按照操作顺序的所有版本
例如我一开始在版本7
后来回退到版本3
然后经过一系列修改,标签又按顺序从3、 4、 5、 6变为了7(但已经不是最开始的7 了)
如果使用git log还是只能按版本顺序显示1到7
如图
但是 git reflog则可以显示所有的操作,包括已经回退了的
git add 额外保存.f源文件(补充2021-04-29)
MFiX无法自动保存自己写的源文件,如添加化学反应后需要指定usr_rates.f文件,但未纳入到git当中。git只默认保存deck文件(即.mfx文件)
那么就要手动添加,只需要一条命令(在当前文件夹打开终端后输入):
git add *.f
此后就会连同所有.f文件一起保存。
这时查看下,发现所有的.f文件内容也纳入到GUI的 history changes当中了
出现error: 您对下列文件的本地修改将被检出操作覆盖的解决(提交到本地仓库git commit)
当我添加了record.txt之后切换版本,会出现如下提示
这是因为新增加的record.txt没有存到本地仓库里。
解决方案:提交到本地仓库
git commit -a -m 'first'
-m代表message 是提交的名称
-a代表all,即所有在暂存区的文件(git add了的文件)
其实这样操作之后,就不用每次都git add *.f了
这是因为一开始MFIX只把.mfx文件添加到了仓库,导致其他文件没有被追踪。而git add再git commit之后,则相当于追加了*.f文件
补充:解决回退之后GUI保存后出现版本号冲突的方案:打标签git tag(2021-5-13)
GUI自动保存版本的功能实际上是通过打标签实现的。
而如果我们手动进行了版本回退或者切换分支,再点保存的时候,那么就会出现
git fail: 已经存在某某版本号
解决方案是手动给当前标签起个名
git tag -a myTagName -m "myTag"
此时就不会出现版本号的冲突了
总结
- 点击GUI下方的history查看版本标签
- 额外保存.f文件
git add *.f
- 并把额外保存的.f文件提交到仓库
git commit -a -m 'first'
- 版本回退(285为版本标签):
git checkout 285
参考
https://blog.csdn.net/wangxinyao1997/article/details/79514274