Git版本控制系统回退操作(五)

简介: Git版本控制系统回退操作1.工作区回退1)在file1文件中随便写点内容

Git版本控制系统回退操作

概念图:

1.工作区回退

1)在file1文件中随便写点内容
[root@192 data_git]# cat file1
jiangxl
jkhdlksadhks
sahdj;
'ad
2)可以通过git status命令看到撤销使用什么命令
[root@192 data_git]# git status
# 位于分支 master
# 尚未暂存以备提交的变更:
#   (使用 "git add <file>..." 更新要提交的内容)
#   (使用 "git checkout -- <file>..." 丢弃工作区的改动)
#
# 修改:      file1
#
修改尚未加入提交(使用 "git add" 和/或 "git commit -a")
3)回退
[root@192 data_git]# git checkout file1
[root@192 data_git]# cat file1
jiangxl

2.暂存区退回到本地文件修改

很多时候修改完代码并提交至暂存区后才发现代码写的有问题,这时需要回退,回退流程:先将暂存区的内容回退到工作区,在从工作区退回到本地文件

1)在文件中新增内容
[root@192 data_git]# vim file1
jiangxl
sdjkhj
dal
[root@192 data_git]# git add .
2)使用git status可以看到撤出暂存区的命令
[root@192 data_git]# git status
# 位于分支 master
# 要提交的变更:
#   (使用 "git reset HEAD <file>..." 撤出暂存区)
#
# 修改:      file1
#
3)撤回暂存区
[root@192 data_git]# git reset HEAD file1
重置后撤出暂存区的变更:
M file1
4)虽然撤出来了,但是内容还没有变,因此需要撤回工作区
[root@192 data_git]# cat file1
jiangxl
sdjkhj
dal
[root@192 data_git]# git checkout file1
[root@192 data_git]# cat file1
jiangxl

image.png

3.上传至本地仓库回退

1)将代码进行第一次修改并上传至本地仓库
[root@192 data_git]# cat file1
jiangxl
sadj
sdjl;a
akjskl
[root@192 data_git]# git add .
[root@192 data_git]# git commit -m "第一次修改"
[master a5fe3d8] 第一次修改
2)再次将代码修改并上传至本地仓库
[root@192 data_git]# cat file1
jiangxl
sadj
sdjl;a
akjskl
adhkl
dsahj'
[root@192 data_git]# git add .
[root@192 data_git]# git commit -m "第二次修改"
[master 284ef4c] 第二次修改
3)查看本地仓库所有的代码版本
[root@192 data_git]# git log

image.png

4)回退至只有jiangxl版本的file文件
[root@192 data_git]# git reset --hard 19cb099ca8915ec44c51ead09c7f7a68159a82dc
HEAD 现在位于 19cb099 file1--jiangxl
[root@192 data_git]# cat file1
jiangxl
再次使用git log会发现已经没有了回退之前的所有版本
[root@192 data_git]# git log
commit 19cb099ca8915ec44c51ead09c7f7a68159a82dc
Author: jiangxl <jiangxl@mail.com>
Date:   Sat Aug 15 21:43:31 2020 +0800
    file1--jiangxl
commit f71ed910db685f63de2dea84996011b2797b34b5
Author: jiangxl <jiangxl@mail.com>
Date:   Fri Aug 14 21:43:34 2020 +0800
    file1~file3
5)别急,reflog记录所有版本
[root@192 data_git]# git reflog
19cb099 HEAD@{0}: reset: moving to 19cb099ca8915ec44c51ead09c7f7a68159a82dc
284ef4c HEAD@{1}: commit: 第二次修改
a5fe3d8 HEAD@{2}: commit: 第一次修改
19cb099 HEAD@{3}: commit: file1--jiangxl
f71ed91 HEAD@{4}: commit (initial): file1~file3

image.png

6)回退至第一次修改
[root@192 data_git]# git reset --hard a5fe3d8
HEAD 现在位于 a5fe3d8 第一次修改
[root@192 data_git]# cat file1
jiangxl
sadj
sdjl;a
akjskl
目录
相关文章
|
3月前
|
敏捷开发 存储 开发工具
版本控制系统的选择:Git与SVN的比较
【8月更文挑战第14天】Git和SVN都是优秀的版本控制系统,它们各自具有独特的优势和适用场景。在选择版本控制系统时,需要根据具体的项目需求、团队特点和开发模式来综合考量。对于需要分布式团队协作、高效处理大型项目或采用敏捷开发模式的团队来说,Git是一个更好的选择。而对于传统团队、集中式开发或简单项目来说,SVN可能更加合适。无论选择哪种版本控制系统,都应该充分利用其提供的工具和功能来提高代码质量和开发效率。
|
20天前
|
存储 开发工具 数据安全/隐私保护
「Mac畅玩鸿蒙与硬件9」鸿蒙开发环境配置篇9 - 使用 Git 进行版本控制
在 HarmonyOS 项目开发中,Git 版本控制可以帮助开发者规范地管理代码变更,确保协作流程顺畅。本篇将详细介绍从创建项目、提交代码到 Git 远程仓库,再到修改、推送更新的完整操作流程,重点演示如何使用 Git 和 GitHub 进行身份验证和版本管理。
58 3
「Mac畅玩鸿蒙与硬件9」鸿蒙开发环境配置篇9 - 使用 Git 进行版本控制
|
1月前
|
Linux 开发工具 git
掌握 Git:版本控制的艺术
Git 是由 Linus Torvalds 开发的分布式版本控制系统,广泛用于代码管理和团队协作。其核心价值在于分布式特性、数据完整性和支持非线性开发。本文介绍 Git 的安装、仓库初始化、文件管理、分支管理、远程仓库操作及撤销操作等基础与高级技巧,助你掌握版本控制的艺术。通过实践,你将能更高效地利用 Git 进行代码管理和团队协作。
|
7天前
|
测试技术 持续交付 开发工具
Git版本控制在团队协作中具有重要作用
Git版本控制在团队协作中具有重要作用
13 1
|
23天前
|
Ubuntu 开发工具 git
Git高手必备:掌握这些版本控制最佳实践,让你的代码管理效率翻倍!
【10月更文挑战第25天】使用 Git 进行版本控制是现代软件开发的重要部分。本文详细介绍了 Git 的安装、配置、基本操作、分支管理、冲突解决及常用命令,帮助开发者提高工作效率,确保代码质量和团队协作的顺利进行。通过合理使用 Git,可以有效管理代码变更,支持多人协作,并追踪历史记录。
56 4
|
23天前
|
开发工具 C# git
C#一分钟浅谈:Git 版本控制与 GitFlow 工作流
【10月更文挑战第22天】本文介绍了 Git 和 GitFlow 的结合使用,从基础概念到具体操作,涵盖了安装配置、基本命令、GitFlow 工作流的核心分支和流程示例。同时,文章还讨论了常见的问题和易错点,如忽略文件、冲突解决、回退提交和分支命名规范,并提供了代码案例。通过学习本文,读者可以更好地理解和应用 Git 及 GitFlow,提高团队协作效率。
46 1
|
13天前
|
开发工具 git
掌握Git版本控制,提升团队协作效率
掌握Git版本控制,提升团队协作效率
|
23天前
|
开发工具 git 开发者
|
1月前
|
编译器 开发工具 数据安全/隐私保护
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
本文提供了一个关于如何在Gitee上进行多人协作和版本控制的详细教程,包括新建和初始化仓库、克隆仓库、邀请好友共同管理仓库以及注意事项,旨在帮助用户顺利进行代码协作开发。
225 0
Git——多人协作/版本控制,在一个gitee仓库下开发(Gitee版教程)手把手教学,包好用的!
|
2月前
|
安全 开发工具 git
git合并错了,我想回退到之前的版本
git合并错了,我想回退到之前的版本