git reset
的联机帮助页上说:
-硬
重置索引和工作树。对跟踪文件中的任何更改 因为
<commit>
被丢弃,所以工作树。-合并
重置索引并更新工作树中的文件
<commit>
和HEAD
之间有所不同,但保留 索引和工作树之间的差异(即已更改) 尚未添加)。如果文件之间<commit>
并且索引具有未暂存的更改,重置被中止。在 换句话说,--merge做类似git read-tree -u -m <commit>
, 但结转未合并的索引条目。-保持
重置索引条目并更新工作树中的文件
<commit>
和HEAD
之间的区别。如果文件不同<commit>
和HEAD
之间的本地更改,重置将中止。
我很难理解--hard,-merge和--keep之间的差异,这可能是由于缺乏对所涉及的各种变更的了解。
您能以更简单明了的方式重述并解释它们的含义吗?
谢谢。
答案 0 :(得分:2)
-hard:基本上,这会将您带到您提到的提交,并且删除在本地所做的任何更改。
有关--keep和--merge之间的区别,请参见:git reset --merge vs git reset --keep