【发布时间】:2021-02-21 14:17:13
【问题描述】:
为了从暂存区恢复项目,我们使用git reset filename or git reset .
但是,在我执行git status 之后,git 也会给我一个提示(如下所述)。
Changes to be committed:
(use "git restore --staged <file>..." to unstage)
这也是从暂存区取消暂存文件。
为了恢复更改,还有一个已知命令
git checkout filename
但是使用git restore filename也可以达到同样的效果
它们之间的根本区别是什么?以及为什么 git 推动使用 git restore
【问题讨论】:
-
我添加了更多解释,但该答案并没有回答为什么 github 会推动或鼓励使用
git restore -
这个问题中的任何内容都与 GitHub 无关。如果您的问题实际上是关于 GitHub 的,也许包括一些引用和指向 GitHub 的链接,他们会在其中讨论您所面临的问题。目前这个问题显示了 Git 产生的消息,这些消息在链接到的问题中得到了回答。
-
请注意,
git restore在很大程度上是“git checkout的一半”。另一半在git switch中:这两个新命令是在 Git 2.23 中引入的,作为将过于复杂的git checkout命令拆分为两个更简单/更易于使用的命令的实验。 VonC 在链接问题中的回答提供了更多历史信息(包括git restore中的一个重要错误修复)。