"git reset --hard"和"git checkout ."有什么区别?

  • 本文关键字:git 区别 checkout reset --hard git
  • 更新时间 :
  • 英文 :


当我想对我的项目进行一些更改并且我想返回到上次提交的状态时,我可以使用这两个选项。他们实际上做同样的事情还是他们之间有什么区别?

以下是这两个命令之间的区别:

git checkout .

这告诉 Git 从当前分支中签出当前文件夹,无论是什么,并用它替换工作文件夹。 但这不会影响工作文件夹的其他区域,也不涉及舞台。

git reset --hard

这会将整个工作目录暂存重置为当前分支的 HEAD。 您可以将其视为有效地破坏自上次提交以来发生的所有事情。

一般来说,硬重置是你不会经常使用的东西,而从不同的地方签出文件/文件夹更常见。

如果您不使用任何提交 ID 跟随它们,即它们将您的状态重置为最新提交,则存在相同的情况。但是,如果您执行reset --hard <commit_id>,它会将当前分支的HEAD更改为指定的提交 id,而checkout会创建一个临时分支。

git checkout 6a0ff74 
# would create a temp branch with its HEAD pointed to commit id
# you can just checkout your original branch.
git reset --head 6a0ff74
# would change the `HEAD` of the current branch. To reverse the change
# you must find the latest commit id and `reset --hard` to it again.
git checkout

从Git 服务器获取更新数据,还要将更改保存在本地计算机上。

git reset --hard特定 HEAD 上创建一个副本标识(如 Git 服务器(,并丢弃本地计算机上的所有更改。

最新更新