如何使用git进行原始结帐?

时间:2012-02-06 19:55:46

标签: git git-checkout

如果我制作新克隆并检出当前版本,如何将我的工作目录恢复到原来的状态?

对于颠覆,我会这样做:

$ 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之类的东西会更好。

4 个答案:

答案 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