VS Code(7)- 版本管理

1 版本管理

如果在当前的文件夹下有尚未被提交的改动,我们能够在这个图标上面看到一个数字。数字代表了有多少个文件被修改了,只是虽改动但还未被提交。
VS Code(7)- 版本管理


  • 当点击这个图标,或者是按下Ctrl + Shift + G 快捷键,就能够打开版本管理这个视图。这个视图的最上方是一个多行输入框,用于输入代码提交时候的描述内容。在这个输入框的下面,我们则能够看到各种不同状态下的代码改动,按照它们的不同状态被归类到不同的列表中。

Git 中有三种主要的文件状态:已提交(Committed)、修改(Modified)和暂存(Staged)。一个文件或者修改,能够在这三个状态直接切换。
VS Code(7)- 版本管理

  • 当修改了一个文件,它会变成修改状态(Modified);然后我们可以通过脚本 git add ${filename}把这个文件的状态改为暂存(Staged),被标记为暂存状态的文件,才有机会被提交。 最后我们可以通过 git commit来提交所有在暂存状态里的文件。
  • 回到 VS Code 的版本管理界面,在下图里,能够看到两种不同的状态。第一个是 “暂存的修改”,也就是所有处于暂存状态的修改,它们都有机会被提交;第二种则是普通的修改。此时侧边活动栏上的版本管理图标已经显示了数字 2,它提示当前项目里有两个不同的修改。
    VS Code(7)- 版本管理

  • 当点击某个代码改动项时,VS Code 则会打开一个差异编辑器(diff editor )。这个编辑器显示了这次代码改动之前和之后对应的文件内容。这样我们就能够很清楚地分辨出对哪些代码做了改动。
    VS Code(7)- 版本管理

VS Code(7)- 版本管理


提交变更

  • 在选择完哪些代码变更要提交之后,下一步就是填写描述信息并提交了。在版本管理视图的上方,有一个输入框,我们把描述信息填入到这个输入框后,按下Cmd + Enter就能提交了(Subversion 是 Ctrl + Enter),也可以通过输入框上方的对号按钮来提交。

  • 查看代码变化、改变文件状态和代码提交,这就是日常最常使用的几个操作了。而其他的操作,比如更新、回退、发布、储藏代码等等,我们可以通过点击输入框上方最右侧的三个点的图标,打开一个下拉菜单,选择我们想要的功能并执行。
    VS Code(7)- 版本管理

2 差异编辑器

VS Code(7)- 版本管理

  • 第一个按钮的功能是从差异编辑器跳转到一个普通的编辑器,并且打开这个文件。这样我们能够无干扰地进行编辑操作了。
  • 第二个按钮控制的是:是否要在差异编辑器里显示代码里行末的空格符的变化。比如说不小心在行末添加了几个空格,默认情况下,VS Code 觉得这几个空格不影响代码,就不会在差异编辑器里显示。但建议把它打开,这样就可以确保能够看到所有的代码改动。
  • 接下来的两个箭头按钮,就是用于在当前文件里的多个变动之间进行跳转了。

2.1 下拉菜单

这个下拉框里的命令,前三个是和 Git 相关的。在版本管理视图里我们只能够对文件的状态进行操作,但是 Git 同样允许我们修改文件中某一段代码变动的状态,就是通过这三个命令实现的。
VS Code(7)- 版本管理


  • 比如在下图中,js 文件里有两段不同的改动,现在我只想把第一段代码改动变为暂存状态。那接下来我要做的就是选中这段代码,从下拉菜单里选择 “暂存所选范围”运行。这之后,我们在版本管理视图里就能够看到两组代码变动,“暂存的更改”这个组里是刚才选中的那段代码变动,而“更改”组里则是第二个代码变动。
  • 这个功能的用途,有的时候我们在修一个 bug 或者完成一个功能时,对代码做了一些临时的变动,但我们既不想提交这个变动,也不想把它清除掉,那通过这几个命令我们就能够真正按需提交代码变动了。
    VS Code(7)- 版本管理
    VS Code(7)- 版本管理

2.2 内联视图

下拉菜单里的第四个则是和差异编辑器呈现方式相关的。默认情况下,差异编辑器采取并排的方式显示两个编辑器,左边的编辑器显示改动前的文件内容,右侧则是改动后的文件内容。其实我们也可以使用 “切换内联视图”,将代码改动显示在同一个编辑器里。

3 编辑器内置版本管理操作

  • 当对一个文件作了修改后,能够在普通编辑器里,行号的右侧看到不同颜色的竖线。它们代表着不同状态的代码变动,比如代码增加、修改和删除。
    VS Code(7)- 版本管理

  • 点击这个竖线时,我们就能在当前编辑器里,立刻看到一个内置的差异编辑器。这样我们就不用每次都打开版本管理视图里去查看代码变动了。
    VS Code(7)- 版本管理