git删除了一个分支,但更改仍在主服务器上进行

git删除了一个分支,但更改仍在主服务器上进行,git,Git,我当时正在处理git回购协议中的一个分支,结果把它搞砸了,只想摆脱这些变化 因此,我没有提交更改,而是签出了我的主分支,然后执行了git branch-D“branch\u to\u remove” 但是,这些文件仍在我的目录中,更改仍在我的主分支上进行提交 如何删除所有这些更改?您可以使用以下命令将工作目录重置为主目录: git checkout master git reset --hard HEAD 要删除未跟踪的文件,我通常使用(根据@Mark Longair的注释进行修改): 编辑

我当时正在处理git回购协议中的一个分支,结果把它搞砸了,只想摆脱这些变化

因此,我没有提交更改,而是签出了我的主分支,然后执行了
git branch-D“branch\u to\u remove”

但是,这些文件仍在我的目录中,更改仍在我的主分支上进行提交


如何删除所有这些更改?

您可以使用以下命令将工作目录重置为主目录:

git checkout master
git reset --hard HEAD
要删除未跟踪的文件,我通常使用(根据@Mark Longair的注释进行修改):

编辑


或者使用
git clean-d
,正如Noufal在另一个答案(现已删除)中的评论中所建议的那样。

太好了,谢谢你,我最终使用了git clean-f-d,效果很好!一些评论:(A)如果您只是将参数放在命令行的末尾,则不需要在xargs中使用
-I
(b)解析
git status
的输出以查找未跟踪的文件比使用
git ls files--exclude standard--others--directory
(c)还不太可靠,您可以将
-z
添加到该命令中,并将
-0
添加到
xargs
调用中,以处理包含空格的文件名。嘿,谢谢!Shell片段很有趣,但也有很多地方出错。我想使用git clean是最终更安全的选择。是的,我想是这样。不过,坦率地说,我在使用所有这些命令时意外地丢失了数据,除了
git checkout master
:)
git ls-files --exclude-standard --others --directory -z | xargs -0 rm -i