diff options
| author | eltrac <hi@eltr.ac> | 2026-04-07 23:06:04 +0800 |
|---|---|---|
| committer | eltrac <hi@eltr.ac> | 2026-04-07 23:06:04 +0800 |
| commit | 9d5def3f34f7221dd12edb8cb7cdc9d59fc89a1f (patch) | |
| tree | e2bb158c39685acc4afb3eb2457eac37daae6e0d /content/article/git-with-trolley.md | |
| parent | da7e16f93ac570063e1043cb4d081c5f0969766a (diff) | |
[image] migrate from cloudflare R2 to bunny.net
Diffstat (limited to 'content/article/git-with-trolley.md')
| -rw-r--r-- | content/article/git-with-trolley.md | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/content/article/git-with-trolley.md b/content/article/git-with-trolley.md index 740ef436..4df86c6f 100644 --- a/content/article/git-with-trolley.md +++ b/content/article/git-with-trolley.md @@ -27,7 +27,7 @@ url = "/essays/git-with-trolley/" 当哲学家命令火车向前行驶,压过铁轨(staging area)上被绑好的人们之后,我们可以说:他提交(commit)了他的工作。 - + {.dark:invert} 显然,在这篇文章中,我们把对代码的改动抽象为「工作」,而在电车难题的比喻中,我们用人来代指「工作」。 @@ -40,7 +40,7 @@ url = "/essays/git-with-trolley/" 如果你数学比较好的话,你可以把电车和这些人的距离理解为「无穷小」,而不是 0 或者负数。哲学家好像和上帝关系很好,或者如果你不信神的话,也可以说哲学家和疯狂科学家关系很好,他从隔壁爱因斯坦那里学会了和时间作对,于是成为了四维生物,能够在时间维度上行走。总之,哲学家可以在电车真的压向这些人之前做任何操作,甚至救下他们,但对这些凡人自己来说,他们已经必死无疑了。 - + {.dark:invert} 这个时候,哲学家突然想再挑一些人上来。可是,就像我们说的,电车正在无限逼近,把人直接往铁轨后面叠加固然没问题,但属实缺乏一些工程美感(是的,哲学家也是思想的工程师!)。主要的原因是,哲学家自己其实也不太确定要不要真的把某些人纳入这场伟大的实验中,这可怎么办呢? @@ -51,7 +51,7 @@ url = "/essays/git-with-trolley/" 于是他把奴隶主放在最主要的,车子一定会碾过的轨道上——我们把这条轨道称作主分支(master[^1])。至于那些资本家,先放在另一条轨道上,我们给这条分支随便起一个名字,比如 foo,原因是这些资本家挺蠢的(fool[^2]),但又有些实力,只能算四分之三的蠢吧。 - + {.dark:invert} 于是现在有了两条轨道,电车有两条行驶路径,哎呀呀,真是难选择啊。到底应该让车子往哪边开呢? @@ -62,7 +62,7 @@ url = "/essays/git-with-trolley/" ### *合并!(merge)* - + {.dark:invert} 需要注意的是,如果仅仅是把 `foo` 分支和主分支接轨,那是无法做到「无人生还」的。我们可以看到,轨道是在第 4 号奴隶主产生分支的,而在那之后,主分支上还相继出现了 5 号和 6 号奴隶主。如果让电车从分叉处驶入 `foo`,又在之后回到主分支,那分叉口之后才出现的 5 号和 6 号不就幸免于难了吗! @@ -73,7 +73,7 @@ url = "/essays/git-with-trolley/" ### *重整!(rebase)* - + {.dark:invert} 对嘛,大家都躺成一排,这样就方便了。 @@ -100,7 +100,7 @@ url = "/essays/git-with-trolley/" 此时,哲学家显然不能把整个 `foo` 分支直接合并到主分支,他需要挑选其中的一些人,并把他们放在 `HEAD` 后面。这个过程就叫作 `cherry-pick`。 - + {.dark:invert} ## 现在,休息吧! |
