在使用 Git 这款版本控制工具,来管理项目代码,蛮多的时候,会涉及到“删除 Git 仓库新增修改”这样的诉求;如果能快速优雅做到,将会促进开发效率;这篇文章即在于,从不同诉求角度,来逐一探讨:“如何快速删除 Git 仓库新增修改”。
只删除已追踪的文件
在 Git 项目中,可以在 .gitignore
文件,对一些不需要提交到代码仓库的文件(夹)加以忽视;对于这类文件,还有尚未提交到本地暂存区
的内容,都是未追踪文件(untracked files),在处理时候,方式略有不同。如果只是删除已追踪的文件,可以有以下两种方法:
git checkout
# 删除所有已追踪修改
git checkout .
# 删除指定文件
git checkout -- your-modified-filename
# 删除指定文件夹内所有已追踪修改
git checkout -- your-modified-dir
2
3
4
5
6
7
8
git reset
# 删除所有已追踪修改
git reset --hard
2
git stash
# 删除所已追踪修改
git stash
git stash drop
2
3
在用这种方法时候,还需要考虑“储藏区”是否有其他内容;很明显可以看出来,使用 git checkout
是最为灵活且快捷的方式。
只删除未追踪的文件
对于新增了一个未追踪的文件,直接在控制台、编辑器,就可以手动移除;但,如果是很多个,就需要用些方法,才会更加高效。比较推荐的方法是使用 git clean
:
# 删除 untracked files
git clean -f
# 连 untracked 的目录也一起删掉
git clean -fd
# 连 gitignore 的 untrack 文件/目录也一起删掉 (慎用)
git clean -xfd
2
3
4
5
6
7
8
可以根据自己的诉求,附带合适的参数来运行命令;一般采用 git clean -fd
即可。但,为数据安全烤箱,强烈建议在运行删除命令前,加上 -n
参数,先看看会删掉哪些文件,以防止重要文件被误删。如下面示例:
git clean -nfd
// Would remove xxx
// Would remove yyy
2
3
删除本地修改的所有文件
对于所做的修改,却还没有提交(git add
)的内容,结合上面👆的总结,运行如下命令即可:
git checkout . && git clean -fd
# Or
git checkout . && git clean -xfd
2
3
如果有些内容,已经 git add
添加至暂存区,也要丢弃删除的话,可以如下操作:
git reset && git checkout . && git clean -fd
# Or
git reset && git checkout . && git clean -xfd
2
3
倘若说部分内容,用 git commit
将暂存区里的改动给提交到本地的版本库,也要丢弃删除的话,可以如下操作:
git reset --hard HEAD^ && git checkout . && git clean -fd
# Or
git reset --hard Last-Commit-ID && git checkout . && git clean -fd
2
3
以上,即对如何快速删除 Git 仓库新增修改的一些总结,如有更加便捷的办法,欢迎留言相告。
@2019-11-02 于深圳.福田 Last Modify:2019-11-02
原文首链:如何快速删除 Git 仓库新增修改