Git如何重置所有未暂存文件至HEAD且保留已暂存文件?
解决方案
当然有办法啦,完全不需要提交操作就能实现你的需求!
下面给你两种可行的方法,根据你的Git版本选择就行:
方法一:使用Git 2.23+的
git restore命令(推荐)
直接在终端运行:git restore .这个命令专门用来恢复工作区的文件,默认只操作未暂存的内容。运行后,所有未暂存的修改(比如你的bar.c)会被重置到HEAD版本,而已经暂存的foo.c会完全保留在暂存区,不会被改动。
方法二:适用于旧版本Git(低于2.23)
如果你用的Git版本比较旧,可以用传统的checkout命令:git checkout HEAD -- .这个命令的效果和上面的
restore一致,会把工作区的所有文件重置为HEAD对应的版本,同样不会影响已经暂存的内容。这里的--是为了避免和分支名混淆,.代表当前目录下的所有文件。
简单来说,这两个命令都只会处理未暂存的修改,完全不会触碰你已经通过git add暂存的foo.c,完美符合你脚本里的需求,全程不需要任何提交操作~
内容的提问来源于stack exchange,提问作者Nick Garlis
相关产品推荐
相关产品推荐

