Py学习  »  Git

如果提交是快照,那么为什么“git stash pop”会保留隐藏后的更改?

Nick Manning • 2 年前 • 423 次点击  

为了更好地理解git,我学到了:

  1. 提交不是更改/增量,而是快照
  2. 藏匿是犯罪

多年来,我一直认为提交是Delta,但实际上它们是快照。知道了。

现在我这样做:

  1. 在文件A中键入一些文本
  2. 藏匿
  3. 在文件B中键入一些文本
  4. 犯罪
  5. 隐藏流行音乐

我希望stash pop会删除文件B中的文本,因为它正在应用添加此文本之前的项目快照。但事实并非如此,它将隐藏应用为一个增量,而不是快照。

那我还缺什么?提交成为快照真正意味着什么?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131029
 
423 次点击  
文章 [ 1 ]  |  最新文章 2 年前
Matt
Reply   •   1 楼
Matt    2 年前

它应用隐藏,就像它是一个增量,而不是一个快照

对的它在 它本身 快照,但“应用”是一种合并形式,是作为 差别 从它形成的头部开始。隐藏提交没有删除文件B中与其前面的头提交相关的文本,因此应用它不会删除文本。

如果你不懂合并逻辑,你可能想读我的 https://www.biteinteractive.com/understanding-git-merge/ .不仅合并本身,而且还原、切利拾取、重设基础和“应用”都使用合并逻辑。(这就是其中任何一个(包括应用隐藏)都可能因合并冲突而失败的原因。)