如何在visual studio代码中合并文件(区分)

时间:2017-11-30 12:32:18

标签: visual-studio-code

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

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

请提出一些解决方案。

abc.component.ts(位于project1中)

abc          <-- text for understanding purpose
def

abc.component.ts(位于project2中)

abc

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

1 个答案:

答案 0 :(得分:2)

首先在git工具集中本地使用vscode

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

这种方式也可以在旧版本的vscode上使用!还是一件好事! (甚至我们应该始终在最新版本上运行!vscode一直在变得越来越好)。

一种强大而酷炫的本地方法是在vscode中使用 git工具集!它仍然不是最流畅的方式!但是,如果您处于没有任何其他东西,没有时间或资源来使用其他任何东西的设置中,那么!另外,还需要启动git repo!我们开始:

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

  • 提交所有当前更改

  • 一次完成:将另一个文件复制过去,以diff放在当前文件的位置。并保存。

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

宾果游戏就是这样!您可以进行比较并直接进行更改!差异会一直实时发生。注意当前状态在右边。然后在那里进行更改。

enter image description here enter image description here

下面是直接修改的示例,例如当前文件中缺少左侧部分

enter image description here enter image description here

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

enter image description here

总结一下! Git工具和vscode的差异是如此强大!而所有这一切都需要!唯一的问题是,如果需要,可以执行额外的提交和清理步骤!

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

git reset --soft HEAD~1

您可以检查 How to cancel a local git commit

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

此外,如果您需要的是能够从当前文件中保留很多内容!您可以将当前副本复制到其他地方!过去的其他文件进行比较!犯!然后再过去一个旧的!您将在右侧拥有旧的,并保持最新状态(不像上面所述),在这种情况下,效果很好! (有点麻烦,但您可能需要它。)

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

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

打开要比较的文件

打开命令托盘

CTRL + SHIFT + P

类型file: compare

enter image description here

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

enter image description here

然后选择文件!该文件必须位于项目目录中。

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

enter image description here

以上内容在我的兄弟计算机上的新vscode安装上进行了测试。起初我不确定它是否是核心的一部分!我只是确认是这样。这也消除了对涉及git的上述方法的需要!这是最好的原生方式。

Vscode扩展

以下是我建议的两个扩展名:

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

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

在当前文件中,右键单击->选择作为差异文件的第一个文件,再次选择一个文件以查看差异结果

enter image description here

选择进行比较,并与select进行比较再简单不过了!

要检查的另一个扩展名:

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

我更喜欢第一个!因为这与本机方式相比很多。而且在上下文菜单中拥有控件非常棒。

超出了vscode!使用其他工具

快速的Google搜索,您会发现很多工具!

https://meldmerge.org/

合并是跨平台,开源的,而且不错!

在Linux和Debian中:

sudo apt install meld

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

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

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

winMerge太多了(Windows的开源项目)

https://winmerge.org/