git reset --mixed commit-id 命令:回退到指定版本。(soft:混合的,即:中等回退。)
该命令不仅修改了分支中HEAD指针的位置,还将暂存区中数据也回退到了指定版本。
但是工作区中的版本仍是回退前的版本。
--mixed 参数是 git reset 命令的默认选项。
示例开始:
首先在版本库中的 readmetxt 文件中添加一行内容,并提交该内容。我们的目的就是要再回退到该版本。
1)查看本地版本库日志
2)向 readmetxt 文件中新增一行数据,并提交到本地版本库
3)现在比对工作区与暂存区、暂存区与本地版本库的差异
我们可以看到此时,工作区、暂存区与本地版本库中的 readmetxt 文件状态无差异。
4)开始回退 *** 作,退回到V3版本
使用 git reset --mixed HEAD^ 命令,退回到前一个版本。
说明:
5)回退后,对比工作区、暂存区与本地库中版本中文件的差异
回退后,我们再次对比了工作区、暂存区与本地库中版本中文件的差异:
说明:工作区中的内容没有回退,但是暂存区和本地库中的内容回退到了之前的版本。(重要)
6)查看本地版本库的提交日志信息
从上我们可以看到:(重点)
7)恢复到回退前版本
上面说了,使用 git reset --mixed 命令回退,做了两个 *** 作
而工作区内容不回退。
我们现在来查看一下工作目录中的文件状态。
我们可以看到 readmetxt 文件是修改未暂存状态。
所以若要恢复到回退之前的版本,也是两种方式:
第一种常规 *** 作,这里就不演示了。下面演示一下第二种方式:
我们查看到, readmetxt 文件的内容已经完全恢复。
git 获取的可不仅仅是“最新”的代码,还包括历史代码。 你可以用 git log, git tag, git branch -a 等命令查看内核代码的历史信息, 标签信息(不同的正式版本应该都打有相应标签),分支信息等。 可以用 git checkout xxx 的命令来切换到 xxx 版本。
显然,你应该先简单学习一下git的用法……
进入项目目录:
一、git branch test 新建一个test分支
二、git checkout test 切到该分支上
三、git reset --hard HEAD^1 将该分支的HEAD切到上一次提交上
了解下git reset命令的相关用法
git的强大就在于分支管理,你要是装了相关的客户端的话,更简单,比如sourcetree,选中那次commit,然后右键branch,新建一个分支即可
查找历史记录:
git log
注意: 使用前7位数字
2
暂时回滚到某版本
git checkout 77e3873
3
回滚到主分支
git checkout master
首先确保你的本地git工作目录下已经增加了远程分支了使用gitremote-v查看。如果没有则先使用gitremoteadd命令添加一个(假设名为origin,分支为master)。如果已经有了,则使用gitpushoriginmaster命令提交当前工作目录下的分支到远程master分支
需要回滚的commit之后的信息在本地和远程都彻底消灭了(慎重,确保你真的不要这些信息了哦)。
而你需要回滚的commit之前的信息全部保存了,只不过是分支名字换了一下,你也可以把分支改名回来。这时远程的新分支还不存在,你之后又改动commit并且push之后,远程也和本地同步上了。
以上就是关于【学了就忘】Git后悔药 — 33.版本回退 *** 作(二)全部的内容,包括:【学了就忘】Git后悔药 — 33.版本回退 *** 作(二)、使用git版本控制工具一般都是下到最新的linux内核,如何使用git下载旧的linux内核、git 获取本地特定commit版本等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)