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
目录
相关文章
|
1月前
|
项目管理 开发工具 git
Python面试题:Git版本控制与协作开发
【4月更文挑战第19天】本文聚焦于Python面试中Git版本控制与协作开发的考察点,涵盖Git基础、协作流程及实战示例。面试者需理解仓库、提交、分支等核心概念,掌握常用命令,熟悉主干开发和GitFlow策略。在协作开发中,要掌握Pull Request工作流,有效处理合并冲突,并善用标签与里程碑。注意避免混淆工作区、忽视代码审查和直接在远程分支上工作等常见错误。通过实例展示了如何在GitFlow策略下合并分支和解决冲突,强调持续学习与实践以提升Git技能。
31 1
|
3天前
|
开发工具 数据中心 git
详解IDEA git 版本回滚
详解IDEA git 版本回滚
8 0
|
11天前
|
缓存 开发工具 git
windows系统通过git上传代码
windows系统通过git上传代码
|
1月前
|
项目管理 开发工具 git
版本控制与源代码管理:在 Visual Basic 项目中使用 Git
【4月更文挑战第27天】本文介绍了在Visual Basic项目中使用Git进行版本控制和源代码管理的重要性。Git作为一个流行的分布式版本控制系统,具备分布式架构、高效性能和强大分支管理等特点。在项目中,需先安装Git,然后初始化仓库、添加文件和提交更改。常用操作包括查看状态、日志、创建及切换分支和合并分支。团队协作时,借助远程仓库和推送拉取命令实现代码共享。虽然Git有学习曲线,但其优势在于强大的功能、灵活性和社区支持,能提升开发效率和代码质量。通过学习和实践,开发者可充分利用Git优化协作和项目管理。
|
1月前
|
程序员 Linux 开发工具
振南技术干货集:研发版本乱到“妈不认”? Git!(5)
振南技术干货集:研发版本乱到“妈不认”? Git!(5)
|
2天前
|
开发工具 git
Git恢复之前版本的两种方法reset、revert(图文详解)
Git恢复之前版本的两种方法reset、revert(图文详解)
5 0
|
3天前
|
敏捷开发 测试技术 持续交付
【git分支管理策略】如何高效的管理好代码版本
【git分支管理策略】如何高效的管理好代码版本
10 0
|
8天前
|
缓存 项目管理 开发工具
Git项目管理——提交项目和版本回退(二)
Git项目管理——提交项目和版本回退(二)
16 2
|
9天前
|
开发工具 git
idea的git reset current branch to here操作详解
idea的git reset current branch to here操作详解
13 1
|
12天前
|
开发工具 git 开发者
使用Git进行版本控制的最佳实践
【6月更文挑战第3天】使用Git进行版本控制的最佳实践包括:初始化配置Git仓库,设置个人信息和默认编辑器;提交信息要简洁明了,使用有意义的标题和描述;分支管理中,为新功能或修复创建分支,定期合并并保持主分支稳定;进行代码审查以保证质量;使用标签标记里程碑;忽略不必要的文件;定期备份仓库并学会恢复操作;不断学习和实践Git的高级用法。遵循这些实践可提升开发效率和代码质量。