git丢弃本地修改的所有文件(新增、删除、修改)

一,未使用 git add 缓存代码时。

可以使用 git checkout -- filepathname (比如: git checkout -- readme.md  ,不要忘记中间的 “--” ,不写就成了检出分支了!!)。放弃所有的文件修改可以使用 git checkout .  命令。

此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除。但是此命令不会删除掉刚新建的文件。因为刚新建的文件还没已有加入到 git 的管理系统中。所以对于git是未知的。自己手动删除就好了。

二,已经使用了  git add 缓存了代码。

可以使用  git reset HEAD filepathname (比如: git reset HEAD readme.md)来放弃指定文件的缓存,放弃所以的缓存可以使用 git reset HEAD . 命令。

此命令用来清除 git  对于文件修改的缓存。相当于撤销 git add 命令所在的工作。在使用本命令后,本地的修改并不会消失,而是回到了如(一)所示的状态。继续用(一)中的操作,就可以放弃本地的修改。

 三,已经用 git commit  提交了代码。

可以使用 git reset --hard HEAD^ 来回退到上一次commit的状态。此命令可以用来回退到任意版本:git reset --hard  commitid

你可以使用 git log 命令来查看git的提交历史。git log 的输出如下,之一这里可以看到第一行就是 commitid:

commit cf0d692e982d8e372a07aaa6901c395eec73e356 (HEAD -> master)
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 14:07:14 2017 +0800

多余的空行

commit 14aa4d7ad4ac6fba59b4b8261d32e478e8cc99ff
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 14:06:44 2017 +0800

正常的代码

commit da3a95c84b6a92934ee30b6728e258bcda75f276
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 13:58:12 2017 +0800

qbf

commit 267466352079296520320991a75321485224d6c6
Author: toyflivver <2440659688@qq.com>
Date: Thu Sep 28 13:40:09 2017 +0800

qbf

可以看出现在的状态在 commitid 为 cf0d692e982d8e372a07aaa6901c395eec73e356 的提交上(有 HEAD -> master 标记)。

本地修改了许多文件,其中有些是新增的,因为开发需要这些都不要了,想要丢弃掉,可以使用如下命令:

git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态
git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。

git reset --hard HASH #返回到某个节点,不保留修改,已有的改动会丢失。
git reset --soft HASH #返回到某个节点, 保留修改,已有的改动会保留,在未提交中,git status或git diff可看。

git clean -df #返回到某个节点,(未跟踪文件的删除)
git clean 参数
 -n 不实际删除,只是进行演练,展示将要进行的操作,有哪些文件将要被删除。(可先使用该命令参数,然后再决定是否执行)
 -f 删除文件
 -i 显示将要删除的文件
 -d 递归删除目录及文件(未跟踪的)
 -q 仅显示错误,成功删除的文件不显示

注:

git reset 删除的是已跟踪的文件,将已commit的回退。
git clean 删除的是未跟踪的文件

也可以使用:

git clean -nxdf(查看要删除的文件及目录,确认无误后再使用下面的命令进行删除)
git checkout . && git clean -xdf

到此这篇关于git丢弃本地修改的所有文件(新增、删除、修改)的文章就介绍到这了,更多相关git丢弃本地修改内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • idea直接修改新的git地址的方法(图文)

    之前因为没有添加到项目成员之中,代码提交是通过别人的账号.后来添加进入后,要修改成自己的账号,从网上搜查资料,几乎全部都是在idea中File-->Settings-->Appearance-->System Settings-->Passwords,不保存密码,重启项目.我试过之后对我是没用处的.如下: 然后我只能另寻他法,最后找到了,记录一下: 打开控制面板-->用户账户-->凭证管理器 如下图点击进入,删除原有的账号 当在idea中再提交或下载代码时,就会弹出如下

  • git修改和删除功能_动力节点Java学院整理

    为什么Git比其他版本控制系统设计得优秀,因为Git跟踪并管理的是修改,而非文件. 你会问,什么是修改?比如你新增了一行,这就是一个修改,删除了一行,也是一个修改,更改了某些字符,也是一个修改,删了一些又加了一些,也是一个修改,甚至创建一个新文件,也算一个修改. 为什么说Git管理的是修改,而不是文件呢?我们还是做实验.第一步,对readme.txt做一个修改,比如加一行内容: $ cat readme.txt Git is a distributed version control syste

  • Git如何修改远程仓库地址

    公司搬移, 作为git仓库的服务器IP地址变了. 本地代码挺多,重新检出太占时间,可以修改一个什么配置让我本地仓库和新的远程仓库建立关联吗, 答案是肯定的! 方法有很多,这里简单介绍几种: 以下均以项目git_test为例: 老地址:http://192.168.1.12:9797/john/git_test.git 新地址:http://192.168.100.235:9797/john/git_test.git 远程仓库名称: origin 方法一 通过命令直接修改远程地址 进入git_te

  • git log根据特定条件查询日志并统计修改的代码行数

    前言 随着年龄的增长和知识的积累,最近常常有种豁然开朗的感觉,或者对一个已经存在的事物突然有了新的认识,比如统计这个词很早就接触了,从没考虑过它是什么意思,而这篇总结的题目中用了统计一词,第一感觉应该是汇总.记录的意思,后来去查了词条定义,也确实就是类似的解释,从没有刻意去学这个词的含义,但是在每天的生活中已经潜移默化地归纳.总结出来了. 想要统计就得有数据源,而 git log 命令恰恰就能提供这个数据源,git log 本身就是一个显示日志的命令,日志记录的是代码库变化的数据,类似于描述代码

  • git修改已commit的注释信息实现

    有时候commit后发现注释不太合适需要修改,网上查找了一些方法,经测试后整理一下. 环境:windows 情况:commit后未push 修改前情况: 修改步骤 1.输入命令,进入vim界面 git commit --amend 2.进入编辑模式 按键i可进入编辑模式(与vim用法相同). 3.修改注释信息,然后退出编辑模式 按键ESC可退出编辑模式(与vim用法相同). 4.完成修改,查看结果 在非编辑模式下输入**:wq**(与vim用法相同)可保存退出. 到此这篇关于git修改已comm

  • Git commit --amend 修改提交信息操作

    amend翻译成中文:修改 1.修改还未push的提交 //修改最近一次提交 git commit --amend //进入注释页面,进行修改 //修改后保存退出 2.修改已经push的提交 //修改最近一次提交 git commit --amend //进入注释页面,进行修改 //修改后保存退出 //强制推送 git push --force-with-lease origin master 补充知识:git 使用amend补上遗漏文件 适用场景:上一次提交遗漏了一些文件,需要补交,但不想多一

  • Git提交日志修改方法实例汇总

    情况一:最后一次提交且未push 执行以下命令: git commit --amend git会打开$EDITOR编辑器,它会加载这次提交的日志,这样我们就可以在上面编辑,编辑后保存即完成此次的修改. 情况二:最后一次提交且已push到服务器 执行以下命令: git commit --amend git push origin master --force 和情况一的做法一样.使用push推送到远程服务器是需要加上--force,让服务器更新历史记录. 需要注意的是:把修改后的日志强制push到

  • git rebase -i 修改历史提交的方法

    git rebase -i 修改历史提交 commit 3 add 22222 commit 2 add 11111 commit 1 create file 有如上三次提交,发现第二次提交有失误,准备修改第二次提交. git log –oneline 查看head f206555 add 2222 572a41e add 1111 c195175 feat:create file git rebase -i c195175 回到第一次提交的基础上 进入命令模式 选择进行edit 此时已经回到第

  • git丢弃本地修改的所有文件(新增、删除、修改)

    一,未使用 git add 缓存代码时. 可以使用 git checkout -- filepathname (比如: git checkout -- readme.md  ,不要忘记中间的 "--" ,不写就成了检出分支了!!).放弃所有的文件修改可以使用 git checkout .  命令. 此命令用来放弃掉所有还没有加入到缓存区(就是 git add 命令)的修改:内容修改与整个文件删除.但是此命令不会删除掉刚新建的文件.因为刚新建的文件还没已有加入到 git 的管理系统中.所

  • git 将本地文件(夹)上传到gitee指定分支的处理方法

    gitee的指定分支 想上传的本地文件夹为C#learning 下面为使用git将这个C#learning上传到项目的example的方法 1.在forup这个文件夹的空白处:鼠标右键 然后选择 Git Bash Here 2.本地仓库初始化,会在此处生成.vs隐藏文件夹 git init 3.其中http://xxxxx.git指gitee处的http(注意结尾有.git) git remote add origin http://xxxxx.git 4.远程仓库与本地仓库同步 其中examp

  • Git建立本地仓库并上传到Gitee的详细步骤

    电脑安装git客户端.注册github账号并登陆 到本地项目文件夹右键选择git bash here 输入个人信息(代码提交者) git config --global user.name "xxxx" git config --global user.email xxxxx@qq.com 在本地项目目录创建本地仓库 git init 输入命令后项目目录会有一个隐藏的.git文件夹 上传所有代码到本地仓库 git add.   (注意add后面有个点,与add之间有一空格) 这样就把代

  • git版本库创建拓展添加文件到版本库教程

    目录 1.创建一个版本库 2.把文件添加到版本库 (1)首先这里再明确一下 (2)使用Windows的童鞋要特别注意: (3)把文件添加到版本库 3.总结 今天看关于Git的博客,发现总结关于Git仓库的文档,写的思路很清晰.可以和前一篇文章,对照的看,可以更加清晰理解. git-reference在线文档: http://shouce.jb51.net/gitbook/Getting-Started/index.html 版本库又名仓库,英文名repository,你可以简单理解成一个目录,这

  • Git获取本地仓库及基础操作指令总结

    目录 一.Git获取本地仓库 二.Git基础操作指令 1.查看修改的状态(status) 2.添加工作区到暂存区(add) 3.提交暂存区到本地仓库(commit) 4.查看提交日志(log) 5.版本回退 6.添加文件至忽略列表 知识点补充 一.Git获取本地仓库 要使用Git对我们的代码进行版本控制,首先需要获得本地仓库 1.在电脑任意的磁盘位置创建一个空目录(例如test)作为我们的本地Git仓库 2.进入这个目录中,点击右键打开Git bash窗口 3.执行命令git init 4.如果

  • PowerShell中按修改时间查找文件的方法

    本文介绍一个PowerShell中按文件的的修改时间来查找文件,这里要用到文件对象的LastWriteTime这个属性. 在很多时候,我都都需要按修改时间来查找文件.比如一个网站,近期发现被人挂马了,我们可能会看看近期的备份是否有被修改,从而确定一下被黑的大致时间段.有了这个时间段后,我们要看看这段时间之内有哪些文件被修改过,有哪些新增上来的文件,很有可能黑客留下下的一句话木马,甚至大马就在里面. 下面我们来看看PowerShell中如何根据文件修改时间来查找文件. 小编先来看看d盘根目录下有些

  • 解决Django中修改js css文件但浏览器无法及时与之改变的问题

    今天修改之前实习小伙伴写的js代码的时候,遇到修改后页面未发生变化的问题.因为我是web开发小白,所以上网查了一波,得以解决~~ 初次进行web工程开发的人可能会碰到这样的情况:自己在明明对工程上的某个js或css文件进行了修改,并提交到服务器上去了.但是在客户端浏览器里面打开页面时,并没有看到修改后的效果,而是该js文件的旧版本的效果. 如果了解过浏览器缓存就知道,为了效率,浏览器通常会缓存js/css文件.如果没有清除浏览器缓存的该js文件的话,js的修改效果就不会起作用,因为浏览器还是用的

  • Laravel 修改默认日志文件名称和位置的例子

    修改默认日志位置 我们平常的开发中可能一直把laravel的日志文件放在默认位置不会有什么影响,但如果我们的项目上线时是全量部署,每次部署都是git中最新的代码,那这个时候每次都会清空我们的日志,显示这不是我们所期望的,好在laravel有提供我们修改的方法. 我们这里以放在/var/log/nginx/app/phphub/phphub.log为例 增加日志处理类# 首先我们新建文件,app/Foundation/Bootstrap/ConfigureLogging.php,代码如下: <?p

  • python修改linux中文件(文件夹)的权限属性操作

    今天生成的对流云团路径图片放在linux下,文件的权限都是rw,没有x,后续的别人的程序调用不了,这里附上对三个属性的简单解释,有不够的欢迎大家补充 Linux的权限不是很细致,只有RWX三种 r(Read,读取):对文件而言,具有读取文件内容的权限:对目录来说,具有浏览目录的权限. w(Write,写入):对文件而言,具有新增,修改,删除文件内容的权限:对目录来说,具有新建,删除,修改,移动目录内文件的权限. x(eXecute,执行):对文件而言,具有执行文件的权限:对目录了来说该用户具有进

  • 详解Git建立本地仓库的两种方法

    Git是一种分布式版本控制系统,通常这类系统都可以与若干远端代码进行交互.Git项目具有三个主要部分:工作区,暂存目录,暂存区,本地目录: 安装完Git后,要做的第一件事,就是设置用户名和邮件地址.每个Git提交都使用此信息,并且将它永久地烘焙到您开始创建的提交中: $ git config --global user.name "John Doe" $ git config --global user.email johndoe@example.com 之后我们可以建立一个本地仓库.

随机推荐