zoukankan      html  css  js  c++  java
  • Git 撤销所有未提交(Commit)的内容

    撸了好多代码,但是突然设计改了(~~o(>_<)o ~~);或者引入个第三方库,后来又发现用不着,想删掉,但文件太多了(比如几百个);那,怎么办呢,都不想了...Git 比人聪明,所以能很方便的帮我们解决问题。

    场景一

    需要撤销的内容文件属于未跟踪的状态。如下命令产生的场景:

    mkdir git-tmp
    cd git-tmp
    git init
    echo '第1次输入的内容' > file1.log
    git status
    

    以上命令产生了file1.log文件,该文件未被执行过git add、也不在版本库中。清除此类未被跟踪的文件:

    git clean -fdx
    

    场景二

    需要撤销的内容已被git add暂存,但未执行git commit提交。如下命令产生的场景:

    mkdir git-tmp
    cd git-tmp
    git init
    echo '第1次输入的内容' > file1.log
    git add .
    git status
    

    那么执行以下命令即可取消文件的暂存:

    git rm --cached -r .
    

    或者,使用:

    git reset
    

    也可以取消所有文件的暂存。

    然后,我们再执行git clean -fdx清除文件。

    场景三

    已提交在版本库中的文件发生了变更、但修改的内容未暂存。如下命令产生的场景:

    mkdir git-tmp
    cd git-tmp
    git init
    echo '第1次输入的内容' >> file1.log
    git add .
    git commit -m '第1次提交'
    echo '第2次输入的内容' >> file1.log
    git status
    

    这种情况,我们可用:

    git checkout .
    

    就可以清除所有变更内容。

    场景四

    已在版本库中的文件发生了变更、且已git add暂存。如下命令产生的场景:

    mkdir git-tmp
    cd git-tmp
    git init
    echo '第1次输入的内容' >> file1.log
    git add .
    git commit -m '第1次提交'
    echo '第2次输入的内容' >> file1.log
    git add .
    git status
    

    这种情况,比场景三仅多了步暂存,那我们可以先取消暂存、然后再检出:

    git reset
    git checkout .
    

    也就是场景二和场景三的混合情况。

    总结

    我们以上所有场景都是内容未被提交(commit)的情况下。如果是撤销提交操作,那就是其他方法了。

    基于以上,我们发现,如果对于已修改的所有内容,我们都不想要了,想回到最干净的上个提交版本的状态。那么,3个命令就可以搞定一切:

    git reset
    git checkout .
    git clean -fdx
    

    最后,再说个小白都能解决该类问题的工具 —— SourceTree,自行尝试吧。


    原文地址: https://shockerli.net/post/git-undo-uncommit-content/

  • 相关阅读:
    win7共享打印机如何设置,xp系统如何连接共享打印机。
    FTP服务-filezilla server 配置
    imp导入时 出现IMP-00017:由于 ORACLE 错误 6550, 以下语句失败: 解决方法
    抓取行政区域js代码
    docker 安装 yapi
    docker 搭建 zipkin
    docker 安装 mindoc
    centos 更换源以及安装软件
    springboot 服务卡死 连接池查询无响应问题解决
    -- Add the primary key as part of the CREATE TABLE statement in case `innodb_force_primary_key` is enabled by flyway
  • 原文地址:https://www.cnblogs.com/shockerli/p/git-undo-uncommit-content.html
Copyright © 2011-2022 走看看