撤销未提交的更改

  1. 使得在工作空间 (此时 git status 文件为红色) 但是不在暂存区的文件撤销更改,内容恢复到没修改之前的状态;
    git restore <file>
    
  2. 修改的内容不会被保留;

撤销已添加到暂存区的更改

restore 撤回

  1. 将暂存区的文件从暂存区 (此时 git status 文件为绿色) 撤回,但不会更改文件的内容;

    git restore --staged <file>
    
  2. 修改的内容会被保留下来;

reset 撤回(不推荐)

如果希望以前的提交在历史中彻底消失,可以使用 git reset,丢弃掉某个提交之后的所有提交;

  1. 撤销提交但保留更改到工作区:

    # 撤销最近的一个提交,保留更改在工作目录中
    git reset --soft HEAD~1  
    
  2. 撤销并丢弃更改,也就是让工作区恢复之前的状态:

    # 撤销最近的一个提交,并丢弃更改
    git reset --hard HEAD~1  
    

revert 撤回(推荐)

  1. 如果已经推送了提交并希望保留历史记录,可以使用 git revert 创建一个新的反向提交;

    # 撤销指定的提交
    git revert <commit>  
    
    # 撤销最近一次提交
    git revert HEAD 
    
    # 撤销多个提交,按顺序写
    git revert [commit1] [commit2] 
    
  2. git revert 不会删除历史记录,而是在当前提交后面,创建一个新的提交,抵消掉上一次提交导致的所有变化;

替换上一次提交内容

  1. 如果提交以后,发现提交信息不对,可以使用 git commit–amend 参数修改上一次的提交信息;

    git commit --amend -m "重新提交信息内容"
    
  2. 这时如果暂存区有发生变化的文件,会一起提交到仓库,–amend 不仅可以修改提交信息,还可以整个把上一次提交替换掉;

打赏作者
您的打赏是我前进的动力
微信
支付宝
评论

中午好👏🏻,我是 ✍🏻   疯狂 codding 中...

粽子

这有关于前端开发的技术文档和你分享。

相信你可以在这里找到对你有用的知识和教程。

了解更多

目录

  1. 1. 撤销未提交的更改
  2. 2. 撤销已添加到暂存区的更改
    1. 2.1. restore 撤回
    2. 2.2. reset 撤回(不推荐)
    3. 2.3. revert 撤回(推荐)
    4. 2.4. 替换上一次提交内容