如何在 Visual Studio 代码中合并文件(区分)

Mah*_*ahi 9 visual-studio-code

我正在将 Visual Studio 代码用于 angular2 应用程序。要求是合并文件,因此,我想区分 Netbeans IDE 中发生的两个文件中的更改。是否有任何可用于在 Visual Studio 代码中实现任务的扩展。

例如 - 通过区分如下更改来合并两个文件:-

请提出一些解决方案。

abc.component.ts(位于project1)

abc          <-- text for understanding purpose
def
Run Code Online (Sandbox Code Playgroud)

abc.component.ts(位于project2)

abc
Run Code Online (Sandbox Code Playgroud)

我想区分两个组件文件并在另一个文件中推送更改,就像在 Netbeans IDE 中发生的那样?是否有任何可用于 Visual Studio 代码的解决方案?

Moh*_*lal 17

首先将 vscode 与 git 工具集一起使用

(请务必查看第二个标题,因为它是更好的本地方式!)

这种方式在旧版本的 vscode 上也可能可用!知道还是一件好事!(即使我们应该始终运行最新版本!并且 vscode 总是变得越来越好)。

一个强大而酷的原生方法是在 vscode 中使用git 工具集!它仍然不是最流畅的方式!但是,如果您所处的环境没有其他任何东西或时间或资源来使用其他任何东西!另外,作为一项要求,您需要启动 git 存储库!开始了:

首先我们将使用 git 工具集的更改和比较功能。步骤如下:

  • 提交所有当前更改

  • 完成后:将另一​​个文件复制到当前文件的位置上进行比较。并保存。

  • 现在很酷,在 git 托盘中您可以在更改列表中看到该文件!单击它,将显示差异编辑器!

宾果游戏就是这样!您可以比较并直接更改!差异将持续实时发生。请注意,当前状态位于右侧。然后你在那里做出改变。

在此输入图像描述 在此输入图像描述

这是直接修改的说明,例如当前文件中缺少左侧部分

在此输入图像描述 在此输入图像描述

这是另一个例子(当前有加号)

在此输入图像描述

总结一下就好!vscode 中的 Git 工具和 diff 太强大了!以及人们所需要的一切!唯一的问题是如果需要的话,需要额外的提交和清理步骤!

这里有一些提示!如果您想让提交历史记录更干净!或者不单独合并!您可以根据需要从历史记录中删除最后一次提交:无需硬重置并再次提交更干净的提交!

git reset --soft HEAD~1
Run Code Online (Sandbox Code Playgroud)

您可以查看 如何取消本地 git 提交

否则,原子提交和合并提及就可以了!

另外,如果您需要的是能够从当前文件中保留很多内容!您可以将当前的内容复制到其他地方!过去其他文件进行比较!犯罪 !然后又过去了旧的!您将在右侧看到旧的和当前的(与上面描述的不同)在这种情况下,这工作得很好!(有点黑客,但你可能需要它)。

Native方式(直接打开比较编辑器)

(可能需要较新版本的 vscode)

打开您要比较的文件

打开命令托盘

CTRL+ SHIFT+P

类型file: compare

在此输入图像描述

您可以看到不同的可能方式!对于文件我们可以选择compare active file with.

在此输入图像描述

然后你选择文件!该文件需要位于项目目录中。

然后您选择一个文件,比较编辑器将打开

在此输入图像描述

以上是在我的兄弟电脑上新安装的 vscode 上测试的。一开始我不确定它是否是核心的一部分!我刚刚确认确实如此。这也消除了对上述涉及 git 的方法的需要!这是最好的本地方式。

vscode 扩展

这里我建议两个扩展:第一个:

https://marketplace.visualstudio.com/items?itemName=jinsihou.diff-tool

简单又简单!它将两个元素添加到右键菜单:

在当前文件右键->选择作为第一个文件进行比较,再次选择一个即可查看比较结果

在此输入图像描述

select 进行比较与 select 进行比较就没有那么简单了!

要检查的另一个扩展:

https://marketplace.visualstudio.com/items?itemName=fabiospampinato.vscode-diff

我更喜欢第一个!因为这与原生方式相比有很多。在上下文菜单中进行控制真是太棒了。

vscode 出来了!使用其他工具

快速谷歌搜索,你会发现很多工具!

https://meldmerge.org/

meld 合并是跨平台且开源的,非常棒!

在 Linux 和 debian 中:

sudo apt install meld
Run Code Online (Sandbox Code Playgroud)

否则,您可以在此处查看长列表:

https://www.jotform.com/blog/25-useful-document-and-file-comparison-tools/

https://stackify.com/code-merge-tools/

还有winMerge就不提了(windows的一个开源项目)

https://winmerge.org/