【git】如何利用mfix自带的git进行版本回退

4 篇文章 0 订阅

问题说明

有时候会遇到这样一种情况:改错了某个地方,然后想退回到之前保存的版本。这时候笨方法是每次保存都复制一份.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"

此时就不会出现版本号的冲突了

总结

  1. 点击GUI下方的history查看版本标签
  2. 额外保存.f文件
git add *.f
  1. 并把额外保存的.f文件提交到仓库
git commit -a -m 'first'
  1. 版本回退(285为版本标签):
git checkout 285

参考
https://blog.csdn.net/wangxinyao1997/article/details/79514274

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值