吸收
你在三个文件里修好了三条评审意见。诚实的做法是三个 fixup! 提交,各自指向正确的父提交。而大家实际的做法是一个叫「review fixes」的提交。
吸收替你做那件诚实的事。

它是怎么工作的
- 暂存这些修正。
- 工具 → 吸收已暂存的变更…(或按 ⌘K)。
- Gitcito 对每个已暂存变更块所触及的行做追溯(blame),找出是你尚未推送的提交中的哪一个引入了它们,并在动手之前先把方案摆给你看。
方案会列出每个目标提交以及要并入它的变更块,另外还有一个尚不属于任何提交的分组——全新的文件没有可供吸收的历史,所以它会继续保持暂存状态,等你按常规方式提交。
| 按钮 | 会发生什么 |
|---|---|
| 创建 fixup | 每个目标一个 fixup! 提交。不做任何变基。 |
| 创建 fixup 并变基 | 同上,随后用一次 autosquash 变基把它们折叠进去。 |
它遵守的规则
- 只有未推送的提交才是候选。 已经发布出去的东西不归我们改写。如果所有提交都已推送,吸收会直说,并且什么也不做。
- 绝不碰工作区。 只动索引,以及吸收自己创建的那些提交。
- 失败不留烂摊子。 只要有任何一步失败,HEAD 和索引都会被原样放回去。
- 合并或变基进行期间它拒绝运行——那个索引是 git 的地盘。