欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Git 如何放弃所有本地修改

程序员文章站 2022-04-18 18:47:50
...
git checkout .  #本地所有的修改,没有提交的,都返回到原来的状态
git stash  #把所有没有提交的修改暂存到stash里面。可用git stash pop恢复。
git reset --hard HASH  #返回到某个节点,不保留修改。
git reset --soft HASH  #返回到某个节点,保留修改。
git log  #可以查看 git commit 的历史记录及其 HASH ID

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

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

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

git clean -f
删除指定路径下的没有被track过的文件

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

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

git reset --hard 和 git clean -f 是一对好基友. 结合使用它们能让你的工作目录完全回退到最近一次commit的时候(唯一有效的一句,其他都是废话一点用没有)

git reset --hard

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

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

git reset --hard

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