代码之家  ›  专栏  ›  技术社区  ›  haydenmuhl

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

git
  •  57
  • haydenmuhl  · 技术社区  · 14 年前

    情况:

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

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

    4 回复  |  直到 7 年前
        1
  •  65
  •   CB Bailey    14 年前

    我倾向于使用 git checkout . 它将放弃工作目录中的所有更改。如果您不在存储库的根目录下,这会有所不同。

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

        2
  •  14
  •   Greg Hewgill    14 年前

    你可以使用 git stash save --keep-index 这样做。保存好藏品后,您可以使用 git stash drop 如果你不想把它留在身边。

        3
  •  9
  •   Raphael    7 年前

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

    • -f 强制它覆盖现有文件,或
    • -f -a 强制覆盖索引中的所有路径。
        4
  •  0
  •   musiphil    7 年前

    git checkout :/ 丢弃工作树中的所有更改,并将其替换为索引中的内容,而不考虑当前的工作目录。

    https://git-scm.com/docs/gitglossary#gitglossary-aiddefpathspecapathspec