使用git,如何将工作树重置为索引的状态?

hay*_*uhl 62 git

情况:

  1. 编辑文件
  2. 将文件添加到索引
  3. 编辑更多文件

现在我们有三种不同的状态.HEAD的状态,索引的状态和工作树的状态.撤消工作树中的更改以使其与索引的状态匹配的命令是什么?

CB *_*ley 70

我倾向于使用git checkout .它从工作目录中丢弃所有更改.如果您不在存储库的根目录下,这会产生影响.

此命令不会删除新创建的文件,这通常是一件好事.如果您需要这样做,那么您也可以使用git clean.

  • 我发现`git checkout:/`放弃了工作树中的所有更改,而不管当前的工作目录如何。 (3认同)

Gre*_*ill 14

你可以git stash save --keep-index用来做这件事.保存藏匿之后,git stash drop如果您不想保留它,可以使用它.


Ant*_*ber 13

使用新git restore命令。

从索引恢复工作树(从暂存文件):

git restore .
Run Code Online (Sandbox Code Playgroud)

从索引(从暂存版本)恢复工作树中的单个文件:

git restore myFile
Run Code Online (Sandbox Code Playgroud)

来源: https: //git-scm.com/docs/git-restore


Pet*_*ans 9

你可以使用git-checkout-index.请注意,您需要添加

  • -f 强制它覆盖现有文件,或
  • -f -a 强制覆盖索引中的所有路径.