当我运行git reset -hard HEAD时,它应该重置为你所拉的原始版本,据我所知。不幸的是,它会让文件到处乱放,因为git状态显示了一大串未跟踪的文件。

你怎么告诉少不再来的人“只是把它拉回到最后拉的地方,不多也不少”?


当前回答

如果你还有想保留的文件:

Git clean -di会进行交互式的清理,允许你只删除你不想要的文件/dirs。

其他回答

你可以使用git stash。您必须指定-include-untracked,否则您将会遇到最初的问题。

git stash --include-untracked

那就把最后一笔存起来

git stash drop

你可以为它创建一个方便的别名,比如git discard:

git config --global alias.discard "! git stash -q --include-untracked && git stash drop -q"

你可能在某个时候做了软重置,你可以通过这样做来解决这个问题

git add .
git reset --hard HEAD~100
git pull
git reset --hard && git clean -df

或者,ZSH提供了一个'gpristine'别名:

alias gpristine='git reset --hard && git clean -df'

这真的很方便。

可选:

对于git clean命令,还有一个-x选项。这也将删除'git忽略'文件,所以添加这个选项以及如果它是你想要的。

如果在fork回购上工作,请确保从正确的回购/分支中获取和重置,例如:

git fetch upstream && git reset --hard upstream/master && git clean -df

如果你还有想保留的文件:

Git clean -di会进行交互式的清理,允许你只删除你不想要的文件/dirs。

您正在寻找的命令是git clean