首页 > 其他分享 >Git 撤销操作(结合VSCode)

Git 撤销操作(结合VSCode)

时间:2022-10-15 14:55:06浏览次数:49  
标签:HEAD git Staging VSCode manual 撤销 Git B1 java

Git 撤销操作(VSCode为例)

说明

在初始时,假设四个区域保持同步

  • Disk 硬盘
  • Staging 暂存区
  • Local 本地Git
  • Remote 远程Git

Disk 撤销文件修改

等价于 VSCode "放弃更改"

image-20221015135607388

# VSCode
git checkout -q -- B1.java
# manual
git checkout B1.java
# manual - new version
git restore B1.java

Disk->Staging 暂存与撤销

  1. Disk->Staging 添加暂存

    # VSCode
    git add -A -- B1.java
    # manual
    git add B1.java
    
  2. Staging移除, 保留Disk(撤销 git add)

    image-20221015140227580

    # VSCode
    git reset -q HEAD -- B1.java
    # manual
    git reset B1.java
    # manual - new version
    git restore --staged B1.java
    
  3. Staging移除,不保留Disk

    # manual
    git checkout HEAD B1.java
    

Staging->Local 本地提交

git reset 可以退回到之前任意一个commit状态
HEAD~ 后可跟数字,表向上退回的版本

通常作用于个人分支,如果想提交,使用git push -f 强制接收修改

  1. Staging->Local 添加提交

    # manual
    git commit
    
  2. Local 撤销Commit

    回到Commit之前的状态,被撤销的变化保留在Staging

    注意,commit message 也被清掉了!

    # manual
    git reset --soft HEAD~1
    

    同时撤销 git commitgit add

    当然,commit message 也会被清掉

    # manual
    git reset HEAD~1
    # manual 等价于
    git reset --mixed HEAD~1
    

    同时从 Local、Staging、Disk中移除,恢复到上一次提交的状态

    危险操作,不推荐

    # manual 
    git reset --hard HEAD~1
    

    git revert本质是增加一个提交,后跟一个或多个参数

    可以理解为-Change,也就是提交一个改动,与上一次改动抵消


    提交链 最后一次提交是 Change)

    Init -> Change -> -Change


    优势1:可以撤销 (Init , HEAD) 中间任意一个提交的操作

    案例:

    Init -> Change0 -> Change1 -> -Change0

    取消 Change0的修改(最后一次提交是 Change1):

    git revert HEAD~1


    优势2:共有分支只能加不能回溯,只能使用 git revert + git push

    # manual 
    git revert HEAD
    

标签:HEAD,git,Staging,VSCode,manual,撤销,Git,B1,java
From: https://www.cnblogs.com/jentreywang/p/16794211.html

相关文章

  • Git&Gitee
    目录Git介绍下载原装Git介绍Git是分布式版本控制系统,控制的对象是开发的项目代码下载原装https://git-scm.com/downloads......
  • docker安装gitlab
    1.获取镜像#dockerpullbeginor/gitlab-ce:11.0.1-ce.02.创建目录#mkdir-p/opt/gitlab/etc# mkdir-p/opt/gitlab/log# mkdir-p/opt/gitlab/data3.创建容器......
  • 如何在 SAP UI5 应用里安全存储一些敏感的数据,避免被上传到 Github 去的风险
    在本教程前一步骤SAPUI5应用开发教程之一百四十-如何使用JavaScript代码连接部署在SAPABAP服务器上的OData服务里,因为我们要在本地运行的SAPUI5应用里,返回......
  • gitlab常用命令
    1.gitlab上打标签(1).上文件到gitlab仓库拉取gitlab项目[email protected]:backend_group/it/test2.git切换分支(切换到master)cdtest2gitcheckoutmaster查看状态gi......
  • git代码统计工具gitstat安装
    分析结果:常规的统计:文件总数,行数,提交量,作者数。活跃性:每天中每小时的、每周中每天的、每周中每小时的、每年中每月的、每年的提交量。作者数:列举所有的作者(......
  • VScode格式化C语言程序时,让左大括号不换行的解决方案
    前言继上次用VScode写C语言之后,感觉舒服了不少,可是还是有一点让我觉得美中不足的地方……那就是!每次格式化C语言程序的时候,都会把我故意不换行的左大括号给换行了!后来找......
  • 我的 Vscode 配置
    {"window.zoomLevel":3,"editor.renderWhitespace":"all",//特殊字体显示变量"editor.semanticHighlighting.enabled":true,//"workbench.c......
  • 数据结构 玩转数据结构 3-1 栈和栈的应用:撤销操作和系统栈
    0课程地址https://coding.imooc.com/lesson/207.html#mid=13417 1重点关注1.1栈和数组对比相同点:都是线性结构不同点:栈只能从一端增删元素......
  • analog-to-DigitalConverter
    analog-to-DigitalConverter#defineLPC_ADC0_BASE            0x400E30003.结构体指针变量typedefstruct{uint32_tCR;uint32_tGDR;uint32_t......
  • Ubuntu如何搭建Gitlab
    先贴官方文档:https://packages.gitlab.com/gitlab/gitlab-ce/install 前往官方下载地址查看自己https://packages.gitlab.com/gitlab/gitlab-ce //TODO: 1、官......