如果我制作新克隆并检出当前版本,如何将我的工作目录恢复到原来的状态?
对于颠覆,我会这样做:
$ 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
之类的东西会更好。
答案 0 :(得分:18)
(准备放弃所有本地的,未经修改的变更:)
git reset --hard
git clean -dfx .
如上所述,您可以使用git stash
临时保存对“伪分支”(即存储)上的本地挂起更改的引用。
答案 1 :(得分:1)
除了@sehe's answer外,您可能还想创建一个别名以使其变得更容易。
git config --global alias.pristine '!git reset --hard && git clean -dffx'
然后,您可以致电git pristine
。
答案 2 :(得分:0)
您可以使用git stash保存当前修改,然后您可以git stash apply
更改您的更改。
答案 3 :(得分:0)
尝试git reset --hard <revision>
有关重置命令的详细示例,请参阅此页:http://linux.die.net/man/1/git-reset