2011-09-12 145 views
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 

编辑

回答

3

您可以与您的工作目录恢复到主

或使用git clean -d作为Noufal在另一个答案(现已删除)的评论中提出的。

+1

太棒了,谢谢我结束了使用git clean -f -d并解决了这个问题! – Rapture

+1

几点意见:(a)如果你只是把参数放在命令行的末尾,你不需要在xargs中使用'-I'(b)解析'git status'的输出来寻找未跟踪的文件不如使用'git ls-files --exclude-standard --others --directory'强壮(c),你可以在这个命令中加上'-z',在你的'xargs'调用中加上'-0'也应付文件名与他们的空间。 –

+0

嘿谢谢! Shell的片段很有趣,但有很多错误。我想用'git clean'是最终的安全选择。 –

相关问题