为了更好地理解git,我学到了:
多年来,我一直认为提交是Delta,但实际上它们是快照。知道了。
现在我这样做:
我希望stash pop会删除文件B中的文本,因为它正在应用添加此文本之前的项目快照。但事实并非如此,它将隐藏应用为一个增量,而不是快照。
那我还缺什么?提交成为快照真正意味着什么?
它应用隐藏,就像它是一个增量,而不是一个快照
对的它在 它本身 快照,但“应用”是一种合并形式,是作为 差别 从它形成的头部开始。隐藏提交没有删除文件B中与其前面的头提交相关的文本,因此应用它不会删除文本。
如果你不懂合并逻辑,你可能想读我的 https://www.biteinteractive.com/understanding-git-merge/ .不仅合并本身,而且还原、切利拾取、重设基础和“应用”都使用合并逻辑。(这就是其中任何一个(包括应用隐藏)都可能因合并冲突而失败的原因。)