zoukankan      html  css  js  c++  java
  • Git丢弃本地修改


    git status
    可以查看所有的改动:
    修改:modified
    删除:deleted
    添加:Untracked
    git checkout -- file 如果没有-- 就变成了切换到另外一只分支了
    git checkout -f 此时你修改的文件和删除的文件都会被恢复,但是你新添加的文件不会被删除
    git clean –df 此时该仓库下所有新添加文件将被清除, 不会对修改和删除做任何处理
    git clean filename –df 此时该新添加文件将被清除, 不会对修改和删除做任何处理

    git clean参数
    首先我们需要认清 忽略的文件 和 未被跟踪的文件。

    忽略的文件:.gitignore 中忽略的文件;
    未被跟踪的文件:没有被忽略,但是还没 git add 的文件
    git clean -f # 删除:未被跟踪的文件
    git clean –fd # 删除:未被跟踪的文件和文件夹
    git clean –xfd # 删除:忽略的文件、未被跟踪的文件和文件夹
    git clean [-xfd] -n-n # 会先打印一些将要删除的文件,并不执行删除动作,主要是查看是否有自己需要的不想被删除


    未使用 git add
    可以使用 git checkout -- 如果没有-- 就变成了切换到另外一只分支了 但是不会删除新建的分支
    使用了 git add
    可以使用 git reset HEAD file
    此命令用来清除 git 对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。
    已经用 git commit
    可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard commitid

    转载来自:原文链接:https://blog.csdn.net/kikajack/article/details/79846098

    因为暂存区的存在,撤销修改分为几种情况(通过 git status 查看仓库状态时会提示相关撤销修改的命令):

    修改后,文件没有放入暂存区(即文件一直在工作区):用 git checkout -- 文件名 撤销工作区的改动(回到跟版本库一样的状态,即回到最近一次 git commit时的状态,所有改动全部清除)
    修改后,文件放入暂存区,且文件没有再次修改(即文件已经进入暂存区):分两步:先用 git reset <文件名> 撤销 git add 操作(此时更改仍留在工作区),再执行 git checkout -- 文件名 清除工作区的改动
    修改后,文件放入暂存区,且文件再次修改:分三步:先用 git checkout -- 文件名 撤销工作区的改动,再用 git reset <文件名> 撤销 git add 操作(此时更改仍留在工作区),最后执行 git checkout -- 文件名 清除工作区的改动
    通过 git checkout -- 文件名 命令可以撤销文件在工作区的修改。
    通过 git reset 文件名 命令可以撤销指定文件的 git add 操作,即这个文件在暂存区的修改。
    通过 git reset 命令可以撤销之前的所有 git add 操作,即在暂存区的修改。

    git checkout -- 文件名 命令中的 -- 表示命令行在 -- 之后没有更多的选项。这样的好处是,如果碰巧有一个分支与文件名重名,仍然可以恢复该文件,而不是切换到同名的分支。


  • 相关阅读:
    面向 部分
    并发 编程
    数据库 部分
    匿名函数
    Linux 30岁,这些年经历了什么?
    漫谈 HTTP 连接
    华为交换机命令基础入门学习,小白也能看得懂!
    一文讲透APaaS平台是什么
    什么是边缘CDN和虚拟CDN (vCDN)?
    systemd进程管理工具实战教程
  • 原文地址:https://www.cnblogs.com/Galesaur-wcy/p/14776722.html
Copyright © 2011-2022 走看看