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
windows系统通过git上传代码
windows系统通过git上传代码
26 1
|
1月前
|
开发工具 数据中心 git
详解IDEA git 版本回滚
详解IDEA git 版本回滚
52 0
|
23天前
|
开发工具 git
unable to index file ‘~$git提交版本号.xlsx‘
unable to index file ‘~$git提交版本号.xlsx‘
|
24天前
|
Linux 项目管理 开发工具
如何利用Git进行高效的版本控制
【7月更文挑战第3天】Git是一个强大的版本控制系统,通过掌握其基本操作、遵循最佳实践并学习一些高级技巧,你可以更加高效地进行版本控制,提升开发效率和代码质量。希望本文能为你的Git之旅提供一些有益的帮助。
|
1月前
|
开发工具 git
git代码回退
git代码回退
29 5
|
29天前
|
开发工具 git
Git进行代码版本控制
Git进行代码版本控制
|
1月前
|
开发工具 git
技巧分享:Git怎么修改已经提交版本的版本注释
技巧分享:Git怎么修改已经提交版本的版本注释
19 4
|
1月前
|
Linux 持续交付 开发工具
版本控制系统的选择:Git vs. Mercurial
【6月更文挑战第20天】Git vs. Mercurial: 两者都是流行的DVCS,Git由Linus Torvalds创建,以其速度和复杂分支管理著称,适合大型项目和有经验的开发者。Mercurial,由Matt Mackall开发,以其简洁命令行和易用性吸引初学者。Git社区更大,扩展更丰富,而Mercurial在某些场景下可能更直观。选择取决于项目需求、团队经验和偏好。
|
23天前
|
Ubuntu 开发工具 git
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
git 超实用教程【人人必会!】(含大厂的 git 操作规范)
27 0
|
25天前
|
开发工具 git
git 恢复单个文件到指定版本
git 恢复单个文件到指定版本
14 0