大家好!我一直在慢慢摸索如何解释 Git 中的各个核心理念(提交、分支、远程、暂存区),而提交这个概念却出奇地棘手。
要明白 Git 提交是如何实现的对我来说相当简单(这些都是确定的!我可以直接查看!),但是要弄清楚别人是怎么看待提交的却相当困难。所以,就像我最近一直在做的那样,我在 Mastodon 上问了一些问题。
大家是怎么看待 Git 提交的?
我进行了一个 非常不科学的调查,询问大家是怎么看待 Git 提交的:是快照、差异,还是所有之前提交的列表?(当然,把它看作这三者都是合理的,但我很好奇人们的 主要 观点)。这是调查结果:
结果是:
- 51% 差异
- 42% 快照
- 4% 所有之前的提交的历史记录
- 3% “其他”
我很惊讶差异和快照两个选项的比例如此接近。人们还提出了一些有趣但相互矛盾的观点,比如 “在我看来,提交是一个差异,但我认为它实际上是以快照的形式实现的” 和 “在我看来,提交是一个快照,但我认为它实际上是以差异的形式实现的”。关于提交的实际实现方式,我们稍后再详谈。
在我们进一步讨论之前:我们的说 “一个差异” 或 “一个快照” 都是什么意思?
什么是差异?
我说的“差异”可能相当明显:差异就是你在运行 git show COMMIT_ID
时得到的东西。例如,这是一个 rbspy 项目中的拼写错误修复:
“`
diff –git a/src/ui/summary.rs b/src/ui/summary.rs
index 5c4ff9c..3ce9b3b 100644
via: https://jvns.ca/blog/2024/01/05/do-we-think-of-git-commits-as-diffs–snapshots–or-histories/
作者:Julia Evans 选题:lujun9972 译者:Cubik65536 校对:wxy
主题测试文章,只做测试使用。发布者:eason,转转请注明出处:https://aicodev.cn/2024/01/22/git-%e6%8f%90%e4%ba%a4%e6%98%af%e5%b7%ae%e5%bc%82%e3%80%81%e5%bf%ab%e7%85%a7%e8%bf%98%e6%98%af%e5%8e%86%e5%8f%b2%e8%ae%b0%e5%bd%95%ef%bc%9f/