合并与变基
从侧边栏
右键点一个分支,选合并到当前分支或变基到——当普通的合并总是出岔子时,也可以选带选项合并…;参见合并选项。
把一个引用拖到另一个上面
全 app 里最快的手势:拎起一个分支,丢到另一个上面。Gitcito 会弹出一个小菜单,列出这一放可能意味着什么,在你做出选择之前什么都不做。

它在展示引用的两个地方都能用——侧边栏里的分支、远程和标签行,以及提交图里那些彩色的引用徽标本身。在它们之间怎么拖都行;悬停时投放目标会高亮。
| 放下 | 意味着 |
|---|---|
| 合并 {源} → {目标} | 检出目标,并把源合并进去 |
| 把 {源} 变基到 {目标} | 把源的提交在目标之上重放一遍 |
| 比较 | 打开比较——什么都不改 |
菜单只提供 git 做得到的事。 合并会把提交落到目标上,所以目标必须是一个本地分支——你没法合并进一个标签或一个远程跟踪引用。变基会重写源,所以源必须是一个本地分支。把一个标签丢到远程分支上,你能拿到的只有比较,因为那确实就是全部可能了。
变基会先请你确认:它给每个被重放的提交一个新的哈希,这意味着如果分支已经发布出去,就得强制推送。合并不问——它只做加法。无论哪种,一次撤销都能把你放回去。
合并
能快进就快进,或者在你想把拓扑结构记录下来时强制生成一个合并提交。如果冲突了,你会落到解决器里。
比较任意两个引用
挑一个基准引用和一个对比引用——分支、标签或裸 SHA 都行,还有个交换按钮——你就能拿到领先/落后的计数、各自独有的提交、完整的合并差异,以及一键交接去开一个 PR。

从侧边栏(与当前分支比较)、工具菜单,或者 ⌘K 都能到。
拣选、还原、重置
拣选和还原一如既往地待在提交图的右键菜单里。重置现在是单独一项——重置到此提交…——而不是三个彼此矛盾的裸 soft/mixed/hard 条目。
修补、撤销和重置排在单个提交菜单的最上面,并且在不安全时保持可见:它们会被禁用,并用提示说明原因。撤销只面向尚未推送的 HEAD;修补对已发布的 HEAD 也放行,但会警告需要一次强制推送。重置只能到达本地祖先,外加第一个已发布的提交——不能到任意更老的历史。
重置对话框把模式讲得明明白白:

| 模式 | 结果 |
|---|---|
| Soft | 保留已暂存的更改 |
| Mixed | 保留未暂存的更改 |
| Hard | 丢弃这些提交及其更改 |
Hard 永远不会被预先选中。工作树不干净时还会多一道警告,因为重置可能覆盖进行中的工作,或与之冲突。在 GitHub 上查看和复制操作放在一起,只对 github.com 远程上已发布的提交开放。
先多选若干提交,拣选就会把整个选区按顺序全部应用。
在你合并任何东西之前
冲突雷达会拿每个分支去和一个基准比对,告诉你哪些会打起来,而且不用检出任何东西。