如何将 VS Code 设置为 Git 编辑器、difftool 和 mergetool
您是否使用VS Code作为默认的 Git 编辑器,或者将其作为 Git 差异工具?应该这样做吗?
让我们看看使用VS Code作为成熟的 Git 合作伙伴的潜在好处,以及如何做到这一点。
目录
- TLDR
- 为什么要将VS Code作为默认的 Git 编辑器、差异工具或合并工具?
- 先决条件
- 将 VS Code 设为默认编辑器
- 将 VS Code 设置为默认的 Diff 工具
- 将 VS Code 设为默认合并工具
- 结论
TLDR
要使VS Code成为所有与 git 相关的默认设置,首先您需要确保您可以按照先决条件部分中概述的方式从命令行运行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
如果您想查看 Git 编辑、差异或合并在VS Code中的样子,请跳至相应部分查看屏幕截图。
为什么要将VS Code作为默认的 Git 编辑器、差异工具或合并工具?
这是个人选择!市面上有很多选择。最重要的是,你的工具应该能够辅助你的工作流程,而不是妨碍你。
我会解释我的决定,也许能让你了解什么最适合你。总而言之,我更喜欢在代码编辑器里尽可能多地做事。
以下是我遇到过摩擦或有其他偏好的情况:
- 如果我正在执行一个交互式 git 命令,需要我输入来编辑和审查一大块文本,我宁愿留在我的代码编辑器中并保持相同的思维模式。
- 我还没有充分使用与 Git 相关的一些 Linux 命令行工具(例如Nano)来获得必要的肌肉记忆,我很快就忘记了命令!🙈 这可能会破坏流程。
- 我通常更喜欢在应用程序之间切换。我更喜欢切换到代码编辑器的另一个选项卡,而不是切换到单独的窗口。
- 对于差异分析,我更喜欢在 GUI 中进行。
- 有些合并冲突要求很高,我喜欢跳转到源文件来获得完整的图片,如果我可以在VS Code中做到这一点,我可以使用熟悉的快捷方式。
- 如果我可以在代码编辑器中完成所有操作,那么我就可以拥有一致的颜色主题,而无需进一步配置。
先决条件
您需要确保可以从命令行运行VS Code,然后才能将其设置为默认编辑器、差异工具或合并工具。您的安装过程中可能未执行此操作。
要测试这一点,请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寻找提交消息的方式。
这就是VS Code查找提交消息的方式。
配置
要更新您的 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 工具
默认的 Diff 工具是vimdiff。
指定差异工具会影响git difftool
命令。该命令git diff
仍会在命令行上执行差异比较。该difftool
命令会启动一个包含受影响文件队列的交互式对话框,询问您选择要打开的文件。
vimdiff查找差异就是这样的。传递🕶!
这就是VS Code查找差异的方式。
您会在上面截图的命令行中注意到,我的 diff 会话显示了 13 个有更改的文件。如果文件列表很长,您可以随时以常规方式( Windows 上为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 设为默认合并工具
没有默认的合并工具集。
当发生冲突时,当您尝试拉取或推送更改时,您将收到错误消息。运行git mergetool
。
运行 vimdiff 如下所示:
VS Code中的合并冲突如下所示:
CodeLens 为您提供了解决冲突的选项。如果存在多个冲突,文档右上角会出现一个工具栏,供您循环浏览每个冲突。
配置
要从命令行执行此操作:
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作为合并工具,您可以运行命令git mergetool --tool-help
来查看更多选项。
结论
设置 VS Code 来管理你所有的 Git 需求非常简单。至于你想使用 VS Code 还是继续使用命令行工具,这只是个人喜好问题。
祝你编码愉快!🙂
横幅摄影:Valentin Antonucci。
感谢您的阅读!欢迎订阅我的RSS 源,并在社交媒体上与他人分享这篇文章。💌
您可以通过ko-fi给我买杯咖啡来表达您的感激之情。🙂
文章来源:https://dev.to/robole/vs-code-let-s-git-it-on-24bd