• git撤销操作(git后悔药)


    git merge 撤销操作

    Git撤销暂存区的修改

    git add 添加文件到暂存区。
    git commit 提交更改,把暂存区的所有内容一次性全部提交到当前分支,清空暂存区。
    
    • 1
    • 2

    有两种相关操作
    通过 git checkout – 文件名 命令可以撤销文件在工作区的修改

    该命令是撤销我们在工作区全部的修改记录
    git checkout -- ./
    
    • 1
    • 2

    通过 git reset a 命令可以撤销指定文件的 git add 操作,即这个文件在暂存区的修改,但此时工作目录中a文件又成了已修改未暂存状态,用上面的命令再次撤销,变为clean状态,即清理干净

    三种开发是常见场景

    • 修改后,文件没有放入暂存区(即文件一直在工作区):用 git checkout – 文件名 撤销工作区的改动(回到跟版本库一样的状态,即回到最近一次 git commit时的状态,所有改动全部清除)
    • 修改后,文件放入暂存区,且文件没有再次修改(即文件已经进入暂存区):分两步:先用 git reset <文件名> 撤销 git add 操作(此时更改仍留在工作区),再执行 git checkout – 文件名 清除工作区的改动
    • 修改后,文件放入暂存区,且文件再次修改:分三步:先用 git checkout – 文件名 撤销工作区的改动,再用 git reset <文件名> 撤销 git add 操作(此时更改仍留在工作区),最后执行 git checkout – 文件名 清除工作区的改动
    vim a.txt #修改工作目录文件
    git status #此时会提醒Changes not staged for commit
    git checkout -- a.txt  #执行完这条命令,发现原理是把这个文件同步为暂存区的样子
    
    注意,经过测试发现其原理是把当前文件同步为成暂存区的样子
    
    如果是以下情况:echo "test" > b.txt
    
    那么b.txt对git来说是未追踪文件Untracked files;此命令无效
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    Git撤销本地commit操作

    写完代码后,我们一般这样

    git add . //添加所有文件
    
    git commit -m "本功能全部完成"
    
    • 1
    • 2
    • 3
    git reset --soft HEAD^
    
    HEAD^的意思是上一个版本,也可以写成HEAD~1
    如果你进行了2次commit,想都撤回,可以使用HEAD~2
    
    • 1
    • 2
    • 3
    • 4

    不删除工作空间改动代码,不撤销git add,仅仅是撤回commit操作

    git reset --mixed HEAD^
    
    • 1

    不删除工作空间改动代码,撤销commit,并且撤销git add . 操作,相当于撤回commit操作,撤回add操作,恢复到add之前内部,这个为默认参数,git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的

    git reset --mixed HEAD^
    
    • 1

    删除工作空间改动代码,撤销commit,撤销git add . 注意完成这个操作后,就相当于完全恢复到了上一次的commit状态。

    git撤销merge

    当我们使用git merge操作合并代码但还没add时,若想取消这次合并,使用命令

    git merge --abort
    
    • 1

    假如不幸已经 git add 了,先用 git reflog 指令显示历史的操作,再用 'git reset --hard commit id’就可以回退到操作之前的状态了

  • 相关阅读:
    https://blog.51cto.com/u_15127582/4009565
    (121)DAC接口--->(006)基于FPGA实现DAC8811接口
    扬帆志远:如何低成本用广告提高shopee店铺销量
    金融强化学习与finRL开发包
    【软件测试面试题】面试官:你在工作中发现最有意义的bug?让他满意的回答......
    操作系统实验——shell命令
    【计算机网络 - 第六章】链路层
    王道书 P191 思维拓展
    在windows和macos安装multipass
    MongoDB 基础了解(一)
  • 原文地址:https://blog.csdn.net/wwwwwww31311/article/details/123524671