美文网首页
git放弃本地文件修改

git放弃本地文件修改

作者: 叁分醒 | 来源:发表于2020-07-28 15:09 被阅读0次

    工作学习中最近经常使用git,本地修改的很多无用的东西,并不想提交,也不想保留这些修改,所以整理下一下删除本地修改的命令。
    可根据当前代码缓存、提交的状态来进行不同的操作。

    1、未使用git add缓存代码

    • 使用git checkout -- filename,注意中间有‘--’
    git checkout -- filename
    
    • 放弃所有文件的修改 git checkout,此命令用于放弃掉所有未加入缓存区(没有使用git add)的修改:对文件的修改操作和对文件执行的删除操作
    git chekout .
    
    • 注:此命令不会删除新建的文件,因为新建的文件还没加入git管理系统中,没有track,所以对git来说它是未知的,只需手动删除即可

    • 若要通过命令删除新增的文件,可使用 git clean 相关命令(酌情使用),下边列举git clean相关命令
      1.显示要删除的文件(注:如果有新增的文件夹,不会显示这个文件夹及此文件夹下的文件)

    git clean -n
    

    2.删除当前目录下所有未track过的文件(注:不会删除.gitignore文件里面指定的文件夹和文件,不管这些文件有没有被track过)

    git clean -f 
    

    3.删除指定路径下的没有被track过的文件

    git clean -f <path>
    

    4.删除当前目录下没有被track过的文件和文件夹

    git clean -df
    

    5.删除当前目录下所有未track过的文件

    git clean -xdf
    

    其中-f表示文件,-d表示目录,如果还要删除.gitignore中的文件那么就再加上-x
    git clean对于刚编译过的项目非常有用,它能轻易删除掉编译后生成的.o和.exe等文件,这在打包要发布一个release的时候非常有用

    2、已使用git add缓存代码,未使用git commit

    • 使用 git reset HEAD filename
    git reset HEAD filename
    
    • 放弃所有文件修改 git reset HEAD
    git reset HEAD
    
    • 此命令用来清楚git 对于文件修改的缓存,相当于撤销git add 命令所做的工作。在使用此命令后,本地的修改并不会丢失,而是回到了第一步1.未使用git add缓存代码,继续使用git checkout -- filename,就可以放弃本地的修改
    • git reset --hard 和 git clean -f 是一对好基友,结合使用能让你的工作目录完全回退到最近一次commit的时候。
      先git reset --hard 后 git clean -f,使用git status 查看,能看到现在是一个干净的工作目录,可以重新开始了。

    3、已经用git commit 提交了代码

    • 使用git reset --hard HEAD^ 来回退到上一次commit的状态
    git reset --hard HEAD^
    
    • 或者回退到任意版本git reset --hard commit id,使用git log命令查看git提交历史和commit id
    git reset --hard commit id
    

    相关文章

      网友评论

          本文标题:git放弃本地文件修改

          本文链接:https://www.haomeiwen.com/subject/jnvhrktx.html