分支与手术

队友雷达

你正在改 api.ts。另一个人也在改,在一个你还没看过的分支上。知道这件事的通常方式是下周的一次合并冲突;雷达的方式是今天的一张列表。

一切都从你的上一次获取算出来——远程跟踪引用,加上一次内存里的 merge-tree,仅此而已。没有服务器,没有装在队友机器上的代理,除了你本来就要做的那次获取,不碰任何网络。

队友雷达

一行告诉你什么

对每个拥有你 HEAD 里没有的提交的远程分支:

列 含义
谁 & 何时 该分支的最后一位提交者,以及多久之前
提交 / 文件 有多少东西要进来,碰了多少个文件
重叠 其中哪些文件此刻在你的工作区里已被修改——红色胶囊
风险 把那个分支合并进 HEAD 会不会冲突(和冲突雷达同一套引擎)

行按和你相撞的程度排序:先是重叠,然后是预测到的冲突,最后是新旧。展开一行能看到确切的文件列表;比较会打开完整的分支对比。

它什么时候开口

每次获取之后——手动也好、自动也好——雷达都会静静地扫一遍。只有当上游提交碰到了你已修改的文件,并且这个集合自上次扫描以来确实变了,它才弹一条提示。没有已修改的文件,就没有噪音:干净的工作区和什么都撞不上。

局限

  • 它只看得见上一次获取看见的东西。还没推送的队友是隐形的——它读的是引用,不是人心。
  • 重叠是路径级的,不是行级的:碰了同一个文件是一声提醒,不是冲突的证明。风险列才是行级的答案,但只在已提交的状态之间成立。
  • 闲置超过约 45 天的分支会被跳过,而且只扫描最近动过的 30 个。

另请参阅: 冲突雷达 · 获取、拉取与推送 · 自那以后改了什么

在 GitHub 上改进这份翻译