处理变更

吸收

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

吸收替你做那件诚实的事。

吸收把每个已暂存的变更块路由到引入它的提交

它是怎么工作的

  1. 暂存这些修正。
  2. 工具 → 吸收已暂存的变更…(或按 ⌘K)。
  3. Gitcito 对每个已暂存变更块所触及的行做追溯(blame),找出是你尚未推送的提交中的哪一个引入了它们,并在动手之前先把方案摆给你看。

方案会列出每个目标提交以及要并入它的变更块,另外还有一个尚不属于任何提交的分组——全新的文件没有可供吸收的历史,所以它会继续保持暂存状态,等你按常规方式提交。

按钮 会发生什么
创建 fixup 每个目标一个 fixup! 提交。不做任何变基。
创建 fixup 并变基 同上,随后用一次 autosquash 变基把它们折叠进去。

它遵守的规则

  • 只有未推送的提交才是候选。 已经发布出去的东西不归我们改写。如果所有提交都已推送,吸收会直说,并且什么也不做。
  • 绝不碰工作区。 只动索引,以及吸收自己创建的那些提交。
  • 失败不留烂摊子。 只要有任何一步失败,HEAD 和索引都会被原样放回去。
  • 合并或变基进行期间它拒绝运行——那个索引是 git 的地盘。

另请参阅: 交互式变基 · 暂存

在 GitHub 上改进这份翻译