• git的回退和撤销操作


    回退是git的使用中很常用的一个操作,如果清楚各个回退命令的作用,不仅大大加快代码回退的效率,还能避免代码回退造成的事故

    1、git reset --hard [commit]

    清空暂存和未暂存的更改 ,仓库重置到目标提交。
    也就是说,使用该命令后,文件状态变为目标提交的状态
    所以,可以: git reset HEAD --hard 来丢弃所有已暂存和未暂存的更改

    2、git reset --soft [commit]

    保留暂存和未暂存的更改,仓库重置到目标提交,目标提交之后的所有提交的变更都变为暂存状态。
    也就是说,使用该命令后,文件的状态和使用前一样,变化的只是git相关的状态(暂存、HEAD等)

    3、git reset --mixed [commit][filename](git reset的默认模式)

    保留未暂存的更改,清空暂存的更改,仓库重置到目标提交,目标提交之后的所有提交的变更都变为未暂存状态。
    也就是说,使用该命令后,文件的状态和使用前一样,变化的只是git相关的状态
    所以,可以: git reset HEAD [filename] 来丢弃暂存的更改

    使用git reset时请加倍小心,因为他可以在有更改没提交的情况下使用,若操作失误,有可能丢失没提交的更改 。若想撤销reset操作,可使用git reflog 找到相应的操作记录id,回退之,但是没提交的更改是找不回来了的。

     

    4、git revert [commit]

    生成一个新的提交来撤销某次提交,不会影响此次提交之前的 commit。

    建议使用,生成新的提交可增强提交树的可读性

     

    5、git checkout [filename]

    丢弃未暂存的修改: git checkout [filename] (从暂存区取对应文件覆盖到暂存区)
    丢弃已暂存和未暂存的修改:git checkout [commit] [filename] (清空未暂存的修改,从某个提交取对应文件覆盖到暂存区)

    适用于不想回退整个提交,而是只回退某个(些)文件的情况

  • 相关阅读:
    python找出数组中第二大的数
    【高并发解决方案】5、如何设计一个秒杀系统
    如何找出单链表中的倒数第k个元素
    二叉树的前序,中序,后序遍历
    剑指Offer题解(Python版)
    python之gunicorn的配置
    python3实现字符串的全排列的方法(无重复字符)
    python实现斐波那契数列
    每天一个linux命令(56):netstat命令
    每天一个linux命令(55):traceroute命令
  • 原文地址:https://www.cnblogs.com/JRliu/p/6772993.html
Copyright © 2020-2023  润新知