git重置硬对软:有什么区别?

Java教程 2025-08-26

硬式git重置

git重置硬命令和软命令之间的关键区别在于,软git重置不会恢复分阶段或工作的树文件回到先前的状态,而硬git重置确实。

git重置硬重置或软命令都不会影响未跟踪的文件。

git重置命令都使用户能够:

  • 操纵他们当地的git承诺历史。

  • 撤消Git跟踪的最新更改和更新。

  • 停止不需要的委托被远程推动。

我应该用硬重置或软重置吗?

但是,当使用GIT重置命令时,开发人员必须确定他们是否希望其本地文件和GIT登台索引重置回到先前的提交时,或者是否应该将文件系统和索引上的文件保持不变。

  • 如果要清除提交历史记录,请使用git重置软件,但要保持索引和文件系统不变。

  • 如果您想清除索引并将所有跟踪的文件还原到其状态,请在重置订单中使用git重置

git重置硬命令类似于仅将您的手伸向空中并放弃,说您想将工作完全重置回到所有事情上的时间点。

git重置软命令承认您要撤消GIT存储库中的一些更改,但也可以保留一些更改和更新。

开发人员可以选择要丢弃哪些资源,以及要保留和使其成为其下一个GIT承诺的一部分的更改。

git重置和未跟踪文件

请注意, git重置仅影响跟踪的git文件。跟踪的文件是已成为以前提交的一部分的文件,或者当前已添加到索引中。

GIT RESET命令忽略了未跟踪的文件。

git重置硬和软命令都会影响提交历史。

git重置硬与软示例

在此示例中,让我们设想一个带有五个提交的本地git回购。eastcommit添加了一个新文件:

  • 第五提交添加了e .txt。

  • 第四个提交添加了d.txt。

  • 第三个提交添加了c.txt。

  • 第二个提交添加了b.txt。

  • 第一个提交添加了a.txt。

这是目录列表的样子:

 /c/git重置硬vs soft(master)$ lsa.txt b.txt c.txt d.txt e.txt

当地的git犯罪历史将如下:

 /c/git重置硬vs soft(主)$ git reflog2e1dd0a head@{0}:提交:提交#5-5 files868ca7e head head@head@{1}:commit:commit#4-4 files ebbbca3 head head@head@{2}: head@{4}:commit:提交#1-1文件

git重置硬和软命令

让我们想象开发人员想重置添加#3(ID EBBBCA3)。开发人员可以选择两个GIT重置语法之一:

  1.  git重置 -  hard ebbbca3
  2.  git重置-Soft Ebbca3

git努力重置

如果开发人员执行git重置,则从文件系统中删除文件d.txt和e.txt,如果其中存在任何内容,则清除登台索引。

 /c/git重置硬vs soft(master)$ git重置-  hard ebbbca3 $ lsa.txt b.txt c.txt

文件d.txt和e.txt从文件系统中消失了。 git重置硬命令将工作树还原回上一个提交的状态。

git重置

比较GIT重置与在相同的GIT历史上发布的软git重置

 /c/git重置硬vs soft(master)$ git重置-Soft Ebbbca3 $ lsa.txt b.txt c.txt d.txt d.txt e.txt

如您所见,硬git重置更改文件系统。柔软的git重置没有。

在此示例中没有证明,硬git重置清除了索引,而软重置则没有。

硬式和软g的重置命令都为开发人员提供了操纵其本地犯罪历史的方法。关键区别是这两个命令如何影响git索引和工作树。

谁知道git重置硬命令和软命令之间的区别?https://t.co/oiur6xdpvo

- 卡梅隆·麦肯齐(Cameron McKenzie)| Docker | github | AWS | Java(@cameronmcnz)2023年8月23日