硬式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重置语法之一:
git重置 - hard ebbbca3
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日