如果我创建一个新克隆并检出当前版本,如何将我的工作目录返回到它所处的状态?
对于颠覆我会这样做:
$ svn status --no-ignore | awk '$1 == "?" { print $2 }' | xargs rm -r
对于mercurial:
$ hg status --ignored --unknown | awk ' ( $1 == "?" ) || ( $1 == "I") { print $2 }' | xargs rm -r
所以同一行的答案都很好。但像git checkout --clean -r b4a23
这样的东西会更好。
(准备丢失所有本地的,未提交的更改:)
git reset --hard
git clean -dfx .
如上所述,您可以使用git stash
临时保存对“伪分支”(即存储)上的本地挂起更改的引用。
除了@sehe's answer之外,您可能还想创建一个别名以使其更容易。
git config --global alias.pristine '!git reset --hard && git clean -dffx'
然后你可以打电话给git pristine
。
您可以使用git stash来保存当前的修改,然后您可以git stash apply
来获取您的更改。
试试git reset --hard <revision>
有关reset命令的详细示例,请参阅此页面:http://linux.die.net/man/1/git-reset