工作区工具

书签

一个你想回去的地方:bug 住的那一行、改名改到一半的函数、等重构落地就要删掉的东西。 在文件视图里右键某一行,选 给这一行加书签,它就出现在侧边栏,点一下就回去了。

侧边栏里的书签

加了书签的行会在行号旁带一个标记;把鼠标放在任意一行上,会出现一个可以点的淡色 标记 —— 右键菜单是给你已经知道有这个功能的时候用的。

书签只属于这台机器和这个仓库。什么都不会写进仓库里,所以既提交不了、推送不了, 别人也看不到 —— 和待办完全一样。

行会移动,问题全在这里。

只要有人在上面插一行,cart.ts:42 就烂掉了;而一个悄悄打开错误行的书签,比没有 书签更糟。所以除了行号,还会存下这一行的文本,打开时重新定位:

  1. 记住的那一行,如果它还是那段文本;
  2. 否则找文本相同的最近一行 —— 取最近的,这样在整个文件里重复出现的行会落到离 原位最近的那一份上;
  3. 再否则找忽略空白后相同的最近一行,这能扛过重新缩进或格式化;
  4. 都没有,就直说这一行已经没了,并在它原来的位置打开,而不是瞎猜。

行移动之后书签会自愈:新的行号被存下来,下次打开就从它真正的位置开始。可以在右键 菜单里加备注 —— 没有备注时,标签就是这一行自己的文本。

限制

  • 书签指向工作区,不是某个提交。它跟着你的编辑走,不会沿着历史往回走。
  • 被重写的文件会丢掉书签。 如果前后几百行里既找不到原文本,也找不到它去掉 空白后的样子,就没有诚实的落点了。
  • 重命名文件会弄坏它的书签。 键是路径;git 能在 diff 里看出重命名,但书签不是 diff 的一部分。
  • 空行没有文本可匹配,它的书签只能靠行号。

另见: 待办 · 问题

在 GitHub 上改进这份翻译