VS Code与git更配哦

插播一段广告:

我们是飞书前端团队, 如果你对技术充满热情, 想亲历业务的飞速增长, 欢迎加入我们, 请关注内推链接.

更多面试问题, 可以添加wx: ruanxiaoting_

使用VS Code作为你的默认git editor,用做git difftool默认编辑器,让我们看下how to do it!

TLDR

要让 git 默认使用 VS Code,首先需要确保可以从命令行运行 VS Code,如先决条件部分所述。

然后,运行命令git config --global -e编辑全局配置,并添加以下内容:

[core]
  editor = code --wait
[diff]
  tool = vscode
[difftool "vscode"]
  cmd = code --wait --diff $LOCAL $REMOTE
[merge]
  tool = vscode
[mergetool "vscode"]
  cmd = code --wait $MERGED

为什么要将 VS Code 设为默认的 Git 编辑器, Diff Tool 或 Merge Tool ?

这是个人选择!那里有很多很多选择。最重要的是,工具应该补充的工作流程,而不是妨碍。

我会解释我的决定,也许它会让你深入了解什么最适合你。一句话,我更喜欢在我的代码编辑器中尽可能多地做。

我们可能会遇到下面的让人别扭的时候:

  1. 如果我正在执行一个交互式 git 命令,需要我的输入来编辑和查看一大块文本,我更愿意留在我的代码编辑器中并保持相同的思维模式。
  2. 我还没有使用一些与 Git 相关的 Linux 命令行工具,比如 Nano 来获得必要的肌肉记忆,我忘记了命令!🙈简直不能更碍事了。
  3. 我一般更喜欢在应用程序之间进行较少的切换。我更愿意切换到代码编辑器的另一个选项卡而不是单独的窗口。
  4. 对于差异,我更喜欢在 GUI 的编辑器中查看它。
  5. 一些合并冲突要求很高,我喜欢跳转到源文件以获得完整的图片,如果我可以在 VS Code 中完成,我可以使用熟悉的快捷方式。
  6. 如果我可以在我的代码编辑器中完成这一切,我就有了一个一致的颜色主题,无需进一步配置。

先决条件

需要确保可以从命令行运行 VS Code,然后才能将其设置为默认编辑器, Diff Tool 或 Merge Tool 。你可能需要安装它。

要对此进行测试,请从命令行运行该命令code --help。如果没有看到一些帮助输出,则意味着目前无法从命令行运行 VS Code。

可以按照以下步骤进行纠正:

  • Windows:需要编辑环境变量,并将的 VS Code 安装位置添加到PATH变量中。或者可以重新安装并确保它在安装向导中选择它(有一个选项)。
  • macOS:Shell Command: Install 'Code' command in path从命令面板中选择。
  • Linux:确保通过.deb.rpm包安装了 VS Code 。

将 VS Code 设为默认编辑器

默认的 Git 编辑器是Nano

这就是 Nano 查找提交消息的方式。

Nano代码提交

这就是 VS Code 查找提交消息的方式。

vs代码提交

配置

要更新的 git 配置,请运行以下命令:

git config --global core.editor 'code --wait'

如果希望每次都打开一个新窗口,请添加--new-window代码标志:

git config --global core.editor 'code --wait --new-window'

如果只想为当前项目更改它,请运行不带–global git 标志的相同命令。

不开心想回去?

git config --global --unset core.editor

将 VS Code 设为的默认 Diff Tool

默认的 Diff Tool 是vimdiff

指定 Diff Tool 会影响git difftool命令。git diff使用difftool在命令行上进行差异比较。该difftool命令启动交互对话,询问选择要打开哪些变动的文件。

这就是 vimdiff 查找差异的方式。通过🕶!

vimdiff 差异

这就是 VS Code 查找差异的方式。

vscode 差异

会在上面屏幕截图的命令行中注意到,我的 diff 会话显示了 13 个已更改的文件。如果文件列表很长,可以随时以典型方式取消该过程:Ctrl+ C。可能需要缩小命令的范围以使该集合更易于管理。

配置

要从命令行配置它:

git config --global diff.tool vscode
git config --global difftool.vscode.cmd 'code --wait --diff $LOCAL $REMOTE'

这会将以下设置添加到的全局 Git 配置中:

[diff]
    tool = vscode
[difftool "vscode"]
    cmd = code --wait --diff $LOCAL $REMOTE

任你选择😁。

如果不喜欢 VS Code 作为的 Diff 工具,请运行该命令git difftool --tool-help以查看更多选项。

使 VS Code 成为的默认 Merge Tool

git没有设置默认的 Merge Tool 。

发生冲突时,会在尝试拉取或推送更改时收到错误消息。运行git mergetool将允许解决冲突。

命令行合并冲突

运行 vimdiff 然后看起来像这样:

vimdiff 合并冲突

这就是 VS Code 中合并冲突的样子:

VS Code 合并冲突

CodeLens 为提供解决冲突的选项。如果有 1 个以上的冲突,文档上方的右上角会出现一个工具栏,为提供列表浏览每个冲突的选项。

配置

要从命令行执行此操作:

git config --global merge.tool vscode
git config --global mergetool.vscode.cmd 'code --wait $MERGED'

这会将以下设置添加到的全局 Git 配置中:

[merge]
    tool = vscode
[mergetool "vscode"]
    cmd = code --wait $MERGED

任你选择😁。

如果不喜欢 VS Code 作为的 Merge Tool ,请运行该命令git mergetool --tool-help以查看更多选项。

结论

设置 VS Code 来管理所有 git 需求很简单。如果想使用 VS Code 或坚持使用命令行工具,这只是一个个人偏好问题。

Happy Coding!🙂

原始链接: https://www.roboleary.net/vsc...

jiangbo
1 声望0 粉丝