Git版本控制系统回退操作(五)
Git 操作 版本 控制系统 回退
2023-09-14 09:15:44 时间
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
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
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
6)回退至第一次修改
[root@192 data_git]# git reset --hard a5fe3d8
HEAD 现在位于 a5fe3d8 第一次修改
[root@192 data_git]# cat file1
jiangxl
sadj
sdjl;a
akjskl
相关文章
- Git和Github之Git命令行操作
- git 日志
- Git的下载方法+版本控制器以及SVN与GIT的区别
- 【说站】python中Git分支操作
- (数据科学学习手札141)利用Learn Git Branching轻松学习git常用操作
- Git分布式版本控制工具学习(四)
- 【Git必知必会】多人协同开发,紧急修复线上bug的操作指南。
- 可使用 git 操作的数据库 dolt
- Git安装
- tortoisegit 创建远程分支_git强制切换分支
- Git 图形化操作之合并提交记录
- Git 分支操作
- Centos搭建GIT服务器
- 软件测试|码农必会的git操作(一)
- PhpStorm Git 操作
- 【Git】概述
- git切换分支(如果当前分支所做的修改没有提交此时如何切换去其他分支)
- 【Git】Git 分支管理 ( 解决分支合并冲突 | 创建并切换分支 git switch -c feature1 | 修改 feature1 分支并提交 | 修改 master 主版本并提交 )
- 【Git】Git 分支管理 ( 使用 git cherry-pick 命令提取提交记录应用于当前分支 | 创建新分支应用某个提交 | git cherry-pick 冲突处理 )
- Git 工具 - 子模块: submodule与subtree的使用
- git 常用操作详解程序员
- Git在Linux系统上的安装及使用(git安装linux)
- 下使用git在Linux下使用Git:简单易学.(如何在linux)
- 学习Linux使用Git进行版本控制(linux使用git命令)
- KVM维护者Paolo Bonzini讲述他与Git的故事