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