2
我正在研究git仓库中的一个分支,并且只是搞砸了它,并且想要摆脱这些更改。git删除了一个分支,但仍然在master上进行更改
所以,我没有提交更改并签出我的主分支,然后做了git branch -D "branch_to_remove"
。
但是,这些文件仍在我的目录中,并且更改仍然在我的主分支上进行提交。
我该如何摆脱所有这些变化?
git checkout master
git reset --hard HEAD
要删除未跟踪档案,我通常使用(修改以下@马克Longair的评论):
git ls-files --exclude-standard --others --directory -z | xargs -0 rm -i
编辑
太棒了,谢谢我结束了使用git clean -f -d并解决了这个问题! – Rapture
几点意见:(a)如果你只是把参数放在命令行的末尾,你不需要在xargs中使用'-I'(b)解析'git status'的输出来寻找未跟踪的文件不如使用'git ls-files --exclude-standard --others --directory'强壮(c),你可以在这个命令中加上'-z',在你的'xargs'调用中加上'-0'也应付文件名与他们的空间。 –
嘿谢谢! Shell的片段很有趣,但有很多错误。我想用'git clean'是最终的安全选择。 –