首页 > 其他分享 >Git必知必会基础(11):撤销操作(含reset)

Git必知必会基础(11):撤销操作(含reset)

时间:2024-01-22 12:32:18浏览次数:28  
标签:11 reset Git -- 撤销 add git commit

 

数据准备

Git必知必会基础(11):撤销操作(含reset)_工作区

 

说明:

下面对file的操作,都可以用通配符

git add <file>...

比如:git add *.txt

 

git restore <file>...

比如:git restore --staged *.txt

 

修改文件(已提交过,文件已在本地仓库中)

撤销:对工作区修改

修改文件内容,可以看到master -> origin的颜色变了

Git必知必会基础(11):撤销操作(含reset)_暂存区_02

 

此时文件在工作区,根据上图提示,撤销修改:git restore qzcsbj.txt

Git必知必会基础(11):撤销操作(含reset)_暂存区_03

 

撤销add:工作区 -> 暂存区

准备数据

Git必知必会基础(11):撤销操作(含reset)_暂存区_04

 

git restore --staged qzcsbj.txt

Git必知必会基础(11):撤销操作(含reset)_工作区_05

 

撤销commit:重新commit

准备数据

Git必知必会基础(11):撤销操作(含reset)_暂存区_06

 

删除上一次提交,重新提交,比如:修改-m的内容,git commit --amend -m "update qzcsbj.txt add 666"

Git必知必会基础(11):撤销操作(含reset)_git_07

 

和上面对比发现,ebc6ec1这次比较被删除了

Git必知必会基础(11):撤销操作(含reset)_工作区_08

 

撤销commit:本地仓库

回到上一次版本,保留工作区和暂存区

git reset --soft f198af0

可以看下面新增文件的示例

 

新增文件(未提交过,文件不在本地仓库中) 

撤销:对工作区修改

工作区新增test.txt文件

Git必知必会基础(11):撤销操作(含reset)_git_09

 

直接删除文件:rm test.txt

Git必知必会基础(11):撤销操作(含reset)_git_10

 

 

撤销add:工作区 -> 暂存区

准备数据

Git必知必会基础(11):撤销操作(含reset)_git_11

 

git restore --staged qzcsbj.txt

Git必知必会基础(11):撤销操作(含reset)_暂存区_12

 

撤销commit:重新commit

git commit -m "add test.txt"

Git必知必会基础(11):撤销操作(含reset)_工作区_13

 

Git必知必会基础(11):撤销操作(含reset)_暂存区_14

 

删除上一次提交,重新提交,比如:修改-m的内容,git commit --amend -m "add file test.txt"

Git必知必会基础(11):撤销操作(含reset)_工作区_15

 

撤销commit:本地仓库

回到上一次版本,保留工作区和暂存区

git reset --soft 477cdb7

Git必知必会基础(11):撤销操作(含reset)_工作区_16

 

关于撤销提交(也就是分支重置)

撤销上一次提交,回退到Untracked(工作区),这会把 HEAD 指针移回上一个提交(HEAD~1),并清除最后一次提交的内容
git reset HEAD~1

撤回两次或者n次
git reset HEAD~2

回到指定commit的状态
git reset --hard <commit_SHA-1>

 

git reset --soft:工作区和暂存区的内容不会改变,git reset --soft 477cdb7

git reset --mixed (默认选项):将HEAD指向指定的提交,暂存区的内容随之改变,工作区内容不变

git reset --hard,将HEAD指向指定的提交,暂存区跟工作区都会改变

git reset --hard HEAD,回退到最近一次提交

分支重置:git fetch --all && git reset --hard origin/master

参数

--mixed
不删除工作空间改动代码,撤销 commit,并撤销 git add . 操作

git reset --mixed HEAD^ 效果等同 git reset HEAD^

--soft
不删除工作空间改动代码,撤销commit,不撤销git add .

--hard
删除工作空间改动代码,撤销commit,撤销git add .

--amend
修改提交日志,进入vim编辑器,改完:wq即可,新版本直接-m指定新的提交日志

 

__EOF__


作者:持之以恒(韧)
关于博主:擅长性能、全链路、自动化、企业级自动化持续集成(DevTestOps)、测开等


标签:11,reset,Git,--,撤销,add,git,commit
From: https://blog.51cto.com/qzcsbj/9364475

相关文章

  • Git必知必会基础(06):分支创建、切换、更新、删除、拉取(fetch)
     简介分支就是版本上的更新送代,默认只有master主分支可以从主分支上分离出其他的分支,各分支间互不干扰每个项目,一般有多个分支,比如master(主干分支)、开发分支、测试分支、生产bug分支等等线上环境,一个项目也可能会有多个稳定分支同时在线上运行但是,分支越多,后期合并分支的成本越大,......
  • Git必知必会基础(04):Git远程仓库操作
    什么是远程仓库?远程仓库是基于Git的代码托管平台,互联网上常用的Git仓库是github、gitee,除了这些远程仓库外,有的公司出于安全考虑,可能会自己搭建一套本地代码托管平台。使用者可以将本地版本库中的文件托管到远程服务器进行存储,这样可以供多个开发者协同开发、共享代码以及备份代码......
  • gitlab数据备份、恢复和迁移
    自建的Gitlab服务器常常会因为使用时间的增长,其空间容量等硬件需求都需要升级,或者迁移至更高配置的服务器上。备份、迁移、恢复、升级过程如下一、gitlab备份备份前gitlab的项目如图所示 1.1修改仓库存储位置gitlab通过rpm包安装后,默认存储位置在/var/opt/gitlab/git-data......
  • 无法访问Github仓库的极简治标法
    技术背景由于IP原因,国内的IP访问Github仓库的时候会经常遇到一些困难,甚至存在无法Ping通的情况。尝试过FastGithub等方案,但还是会遇到各种各样的问题,导致情况越来越复杂。但是转念一想,其实我只是想使用仓库中的代码和功能,理论上说使用国内的镜像就够了,于是总结了一个最实用便......
  • 企业级GitLab在Docker部署使用
    一、部署gitlab这里使用的是Centos8,安装Docker环境,这里不说了,参考:https://www.cnblogs.com/wei325/p/15139701.htmlgitlab有ce版和ee版,ce版为免费版本;ee版为企业版本,需要收费;这里用ce版。1)拉取Gitlab镜像dockerpullgitlab/gitlab-ce  2)启动Docker先建3个目......
  • 使用git clone --recursive克隆,由于网络原因失败
    问题下载Github上某些代码仓库时,如果代码仓库中具有很多子模块,正常使用gitclone—-recursive下载方式,发现:下载缓慢并且子模块有极大概率不能完全下载。在此通过一个例子,来展示如何快速高效的下载代码库文件。该方法具有普适性。欲下载一代码库文件,原始下载方法为:gitclone......
  • day38 K8S管理平台-Lens - K8S管理平台-Kuboard (11.1-11.2)
    11.1、K8S管理平台-Lens(两节)Lens简介lens是一款开源的KubenretesIDE,也可以作为桌面客户端,官方网站https://k8slens.dev,具有以下特性:完全开源,GitHub地址https://github.com/lensapp/lens实时展示集群状态内置Prometheus监控多集群,多个namespace管理原生K......
  • 20240117进度汇报
     #!/usr/bin/envpythonfrom__future__importprint_functionimportcollectionsimportcsvimportloggingimportosimportSimpleITKassitkimportradiomicsfromradiomicsimportfeatureextractordefmain():outPath=r''inputCS......
  • Go语言核心36讲 11 | 通道的高级玩法
    我们已经讨论过了通道的基本操作以及背后的规则。今天,我再来讲讲通道的高级玩法。首先来说说单向通道。我们在说“通道”的时候指的都是双向通道,即:既可以发也可以收的通道。所谓单向通道就是,只能发不能收,或者只能收不能发的通道。一个通道是双向的,还是单向的是由它的类型字面......
  • UVA11218的题解
    题目翻译大意有九个人要去KTV唱歌,每三个人为一组分成三组,现在给出了\(n\)种分的组合,输入四个数\(a,b,c,s\)分别代表\(a,b,c\)这三个人的构成一个组合能获得\(s\)分,现在要求最多能获得多少得分。如果无法把分配九个人就输出-1。分析数据范围:看这数据,\(n<81\)不......