【问题标题】:What are the differences between the --hard, --merge, and --keep for git reset? [duplicate]git reset 的 --hard、--merge 和 --keep 有什么区别? [复制]
【发布时间】:2019-01-21 20:30:26
【问题描述】:

git reset 的手册页说:

--困难

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

--合并

重置索引并更新工作树中的文件 <commit>HEAD 之间不同,但保留那些 索引和工作树之间的不同(即有变化 尚未添加)。如果文件之间不同 <commit> 并且索引有未暂存的更改,重置被中止。在 换句话说, --merge 做的事情类似于 git read-tree -u -m <commit>, 但会继承未合并的索引条目。

--保留

重置索引条目并更新工作树中的文件 <commit>HEAD 之间的区别。如果文件不同 <commit>HEAD 之间有本地更改,重置被中止。

我无法理解--hard、--merge 和--keep 之间的区别,这可能是由于对所涉及的不同类型的更改缺乏了解。

您能否以更通俗易懂的方式重新表述并解释它们的含义?

谢谢。

【问题讨论】:

    标签: git


    【解决方案1】:

    --hard:这基本上会将您带到您提到的提交以及自本地提交以来所做的任何更改都将被删除。

    有关 --keep 和 --merge 之间的区别,请参阅:git reset --merge vs git reset --keep

    【讨论】:

      猜你喜欢
      • 2017-12-10
      • 2011-04-01
      • 2017-08-19
      • 2011-09-06
      • 2014-08-25
      • 2014-09-03
      相关资源
      最近更新 更多