• 撤销git 命令


    一、撤销add命令

    1、单个文件

    git reset HEAD  -filename

    2、多个文件,只撤销部分文件

    git reset HEAD 将file退回到unstage区

    3、如果是撤销所有的已经add的文件:

    git reset HEAD .
    

    二、git rm 与 git reset的区别

    1. git rm:用于从工作区和索引中删除文件
    2. git reset:用于将当前HEAD复位到指定状态。一般用于撤消之前的一些操作(如add,commit等)。
    3. git rm file_path删除暂存区和分支上的文件,同时工作区也不需要
    4. git rm --cached file_path 删除暂存区或分支上的文件, 但工作区需要使用, 只是不希望被版本控制(适用于已经被git add,但是又想撤销的情况)
    5. git reset HEAD 回退暂存区里的文件

    三、取消commit命令

    git reset --soft HEAD^

    --HEAD^

    指上一个版本,也可以写成HEAD~1(HEAD~2回退2个commit)

    --soft
    不删除工作空间改动代码,撤销commit,不撤销git add .
    --mixed
    不删除工作空间改动代码,撤销commit,并且撤销git add .
    (git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的)。
    --hard
    删除工作空间改动代码,撤销commit,并且撤销git add ,回退版本

    commit修改注释

    git commit --amend

    四、取消merge命令

     git revert -m 【要撤销的那条merge线的编号】 【merge前的版本号】
    1. # 1 commit 之前的撤销
    2. 未添加至暂存区的撤销(add 之前)
    3. git status
    4. git checkout .
    5. 已添加至暂存区的撤销(add 之后,有或者没有commit操作都可以执行)
    6. git reflog
    7. git reset --hard bca6882(relog 中展示的commitId)
    8. # 2 push之后的撤销
    9. push操作后的撤销不想将本次的操作生效
    10. git revert commitId(提交的id)
    11. git push origin brandname 此次操作就会撤销掉上一次的push
    12. 会生成一条revert 的提交记录
    13. 将userName 改为username 经过一系列的git操作
    14. git add .
    15. git commit -m "commit"
    16. git push orgin
    17. 进行git revert commitId
    18. 再进行git push origin branchname
    19. userName 还是userName,
    20. 再revert 的时候,
    21. git revert
    22. git push origin branchname
    23. userName 还是改为username.
    24. 总结为:
    25. git revert 为奇数时生效,为偶数时,失效
    26. # 3 git 回滚:
    27. git 回滚到某一次commit操作,在该commitId之前的操作,将全部失效(此方法不建议使用,有风险),
    28. git reset --hard commitId
    29. git push origin branchname --force (强制覆盖,因为是不可逆的,不建议使用)

    五、参考

    CSDN博客_git 取消merge

    git的撤销操作SegmentFault 思否

  • 相关阅读:
    我的 Java 学习&面试网站又又又升级了!
    JavaScript
    含文档+PPT+源码等]精品基于SSM的图书管理系统[包运行成功]计算机Java毕业设计SSM项目源代码
    k8s 搭建基于session模式的flink集群
    请写出一个高效的在m*n矩阵中判断目标值是否存在的算法
    Docker快速极简配置nginx实现不同域名访问分流
    【并发编程-2】JUC-1
    从0开始学习JavaScript--JavaScript 数字与日期
    本地部署Perplexity 克隆:使用Llama 3.1实现高效搜索
    第七章 贝叶斯分类器(上)
  • 原文地址:https://blog.csdn.net/weixin_42322206/article/details/125632678