对于git重置,--hard、--merge和--keep之间有什么区别?

对于git重置,--hard、--merge和--keep之间有什么区别?,git,Git,git reset的主页上显示: --硬的 重置索引和工作树。对中的跟踪文件所做的任何更改 自以来的工作树被丢弃 --合并 重置索引并更新工作树中已删除的文件 和头不同,但保留 索引和工作树之间的不同(即,有变化的 (尚未添加)。如果文件在 如果索引有未老化的更改,则会中止重置。在里面 换句话说,merge有点像 git读取树-u-m, 但结转未合并的索引项 --保持 重置索引项并更新工作树中 和头部之间的差异。如果文件是不同的 在和之间,磁头有局部变化,复位被中止 我很难理解--hard、--

git reset
的主页上显示:

--硬的

重置索引和工作树。对中的跟踪文件所做的任何更改 自
以来的工作树被丢弃

--合并

重置索引并更新工作树中已删除的文件
不同,但保留 索引和工作树之间的不同(即,有变化的 (尚未添加)。如果文件在
如果索引有未老化的更改,则会中止重置。在里面 换句话说,merge有点像
git读取树-u-m
, 但结转未合并的索引项

--保持

重置索引项并更新工作树中
头部之间的差异。如果文件是不同的
在
之间,磁头
有局部变化,复位被中止

我很难理解--hard、--merge和--keep之间的区别,可能是因为缺乏对所涉及的不同类型的更改的理解

你能用更简单明了的方式重新表述和解释它们的意思吗

谢谢。

--hard:这基本上会将您带到您提到的提交,并且自本地提交后所做的任何更改都会被删除

有关--keep和--merge之间的区别,请参见: