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

是否有一个git命令可以在不更改任何引用的情况下使工作树等于索引?

git
  •  2
  • merlin2011  · 技术社区  · 3 月前

    假设我使用 git read-tree <sha> 没有 -um (因为我不想要合并,而是简单的阅读)。

    现在我想做相当于最后一步的操作 git reset --hard (使工作树等于索引),而不更改任何引用。

    是否有机制 git 这样做?

    等价地说,有没有一种方法可以在语义上做一个 git read-tree -u 不进行任何合并,而是简单地用给定树的内容覆盖索引和工作树?

    我试过了 git checkout-index -a -f ,但它不会删除工作目录中的文件,只会添加它们。

    1 回复  |  直到 3 月前
        1
  •  2
  •   eftshift0    3 月前

    我想这就是 git restore -- . 确实如此(就像索引一样设置工作树)。现在,你最后的评论让我觉得你在找 git restore --worktree --staged --source <some-commit-id> -- . 这将调整索引和工作树,看起来就像你提供的提交id一样。