git discard all清空所有未提交、清除文件变更

文件 gitclean 删除 所有 清空 gitignore 指定 git 提交 内容 编程技术
发布日期 2022-09-07 更新日期 2022-09-07 阅读次数 86 文章字数 1.1k

git discard不是原始命令,但一般的 git 管理工具会提供,怎么用原始 git 命令实现呢?

清空所有未提交文件,忽略 .gitignore 指定的内容(推荐使用)

git clean -df
git checkout .

清空所有未提交文件,无论其是否在 .gitignore 中指定(非常危险)

git clean -dfx
git checkout .

 git clean命令用来从你的工作目录中删除所有没有tracked过的文件

git clean经常和git reset --hard一起结合使用. 记住reset只影响被track过的文件, 所以需要clean来删除没有track过的文件. 结合使用这两个命令能让你的工作目录完全回到一个指定的<commit>的状态

git clean -n

是一次clean的演习, 告诉你哪些文件会被删除. 记住他不会真正的删除文件, 只是一个提醒

git clean -f

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

git clean -f <path>

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

git clean -df

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

git clean -xf

删除当前目录下所有没有track过的文件. 不管他是否是.gitignore文件里面指定的文件夹和文件

git reset --hard和git clean -f是一对好基友. 结合使用他们能让你的工作目录完全回退到最近一次commit的时候

git clean对于刚编译过的项目也非常有用. 如, 他能轻易删除掉编译后生成的.o和.exe等文件. 这个在打包要发布一个release的时候非常有用

下面的例子要删除所有工作目录下面的修改, 包括新添加的文件. 假设你已经提交了一些快照了, 而且做了一些新的开发

git reset --hard

git clean -df

运行后, 工作目录和缓存区回到最近一次commit时候一摸一样的状态,git status会告诉你这是一个干净的工作目录, 又是一个新的开始了!

总结:

  • git clean -n:提示将要清空的内容(不包括.gitignore里指定的内容)
  • git clean -f:删除将要清空的内容(不包括.gitignore里指定的内容)
  • git clean -df: 和上一个相同,只是显示指定当前目录
  • git clean -xfn:提示将要删除的内容(不管是否 .gitignore)
  • git clean -xf:删除将要清空的内容(不管是否 .gitignore)

总的来说,这几个参数,可以随意搭配,只要带了 n 则为警告,只要带了 x 则忽略 .gitignore,带了 f 则真正删除(同时带n则f无效),等等。

另外,还有一个没提到,但是很重要的语句:git checkout . 就是清空当前目录所有已经修改的文件,原理是 git 重写工作区从而放弃所有修改(从索引中覆盖现有文件)。


文章作者: 朱丰华

文章链接: https://smart.52dixiaowo.com/blog/post-48.html

版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。

文件 gitclean 删除 所有 清空 gitignore 指定 git 提交 内容

发表评论

相关推荐
朱丰华   |   8个月前   |   git

git从缓存中移除数据git rm --cached

436    评论    点赞
朱丰华   |   1年前   |   linux · upx

Linux下安装UPX

450    评论    点赞
朱丰华   |   1年前   |   请求 · 一个

ab测压命令,apache测压工具

196    评论    点赞
朱丰华   |   1年前   |   php · 缓存 · opcache

php 加速、提高并发opcache

223    评论    点赞
朱丰华   |   1年前   |   js · 重复

js如何避免重复监听addEventListener事件?

146    评论    点赞
朱丰华   |   1年前   |   go · gopath

Go自定义包并安装(GOPATH)

130    评论    点赞
朱丰华   |   1年前   |   变量 · mysql · sql · 用户

MySQL用户自定义变量

111    评论    点赞
朱丰华   |   1年前   |   sql · php

PHP如何使用PDO批量执行SQL?

131    评论    点赞
朱丰华   |   1年前   |   sed · 文件

Shell 指定行处理head、tail、sed

167    评论    点赞
朱丰华   |   1年前   |   linux · 内容

linux环境下,对于一个大文件,如何查看其中某行的内容

80    评论    点赞
朱丰华   |   1年前   |   linux · 文件 · 行数

linux 取得文件行数

60    评论    点赞
朱丰华   |   1年前   |   下载 · 请求

idm、浏览器下载发送两次下载请求

155    评论    点赞
朱丰华   |   1年前   |   文件 · linux · 修改

linux文件的三个时间atime,mtime,ctime分别表示什么?

292    评论    点赞
朱丰华   |   1年前   |   linux · 文件 · 统计

linux递归统计文件夹下的文件数量

181    评论    点赞
朱丰华   |   1年前   |   linux · 文件

linux递归统计文件夹大小、du命令_Linux du命令:查看文件夹和文件的磁盘占用情况

208    评论    点赞
朱丰华   |   1年前   |   git · add · 文件

git add -A 和 git add . 的区别

122    评论    点赞
朱丰华   |   1年前   |   php

windows下编写、编译php扩展

177    评论    点赞
朱丰华   |   1年前   |   linux · php

linux下编写、编译php扩展

161    评论    点赞
朱丰华   |   1年前   |   html

npm clean-mark,抓取网页文章内容,转换成markdown、html、txt

200    评论    点赞
朱丰华   |   1年前   |   js · export · import

js es6 export,import,export default的用法和区别

138    评论    点赞
{{item.author_name}}   |   {{new Date(item.date*1000).log()}}   |   {{it}} ·

{{item.title}}

{{item.uv}}    评论    点赞