在SAP Web IDE中使用3-WAY Merge与Git

SAP Web IDE中使用3-WAY MergeGit

3-Way Merge  是一种允许开发人员在自动合并无法确定时手动解决冲突的功能。

通过三向合并,您可以将两个文件与原始副本进行比较(在更改之前)。例如,如果删除了文件的第一行,并且您的朋友添加了最后一行,则将创建包含这两个更改的合并版本。

我们最近将3-way-merge添加到我们的基本核心功能集中,以使开发人员能够在IDE中解决Git冲突,从而提高工作效率。

SAP Web IDE提供了一个简单直观的图形比较工具,您可以在其中直接进行更改。

以下是在SAP Web IDE中使用Git compare时可以体验到的一些功能:

主要特点:

  • 下一个/上一个更改
  • 向左/向右推动更改
  • 撤销重做
  • 在窗格之间同步/取消同步滚动
  • 搜索/替换文本
  • 跳到线上

让我们看看如何使用3-Way Merge工具和  SAP Web IDE解决冲突  

  1. 创建一个文件夹。
  2. 在新文件夹中, 使用以下内容创建名为file.js文件  :
  1. var ClassA = function() {
  2.     this.name = "class A";
  3. };
  4.  
  5. ClassA.prototype.print = function() {
  6.     console.log(this.name);
  7. };
  8.  
  9. var a = new ClassA();
  10. a.print();
  11.  
  12. var inheritsFrom = function (child, parent) {
  13.     child.prototype = Object.create(parent.prototype);
  14. };
  15.  
  16. var ClassB = function() {
  17.     this.name = "class B";
  18.     this.surname = "I'm the child";
  19. };
  20.  
  21. inheritsFrom(ClassB, ClassA);
  22.  
  23. ClassB.prototype.print = function() {
  24.     ClassA.prototype.print.call(this);
  25.     console.log(this.surname);
  26. };
  27.  
  28. var b = new ClassB();
  29. b.print();
  30.  
  31. var ClassC = function () {
  32.     this.name = "class C";
  33.     this.surname = "I'm the grandchild";
  34. };
  35.  
  36. inheritsFrom(ClassC, ClassB);
  37.  
  38. ClassC.prototype.foo = function() {
  39.     // Do some funky stuff here...
  40. };
  41.  
  42. ClassC.prototype.print = function () {
  43.     ClassB.prototype.print.call(this);
  44.     console.log("Sounds like this is working!");
  45. };
  46.  
  47. var c = new ClassC();
  48. c.print();
  49.  
  50. var ClassD = function () {
  51.     this.name = "class D";
  52.     this.age = 42;
  53. };
  54.  
  55. inheritsFrom(ClassC, ClassB);

  1. 右键单击该文件夹,然后选择Git> Initialize Local Repository。(   初始化存储库时会自动创建分支。)
  2. 打开Git窗格,确保看到该  文件。登台表中的js文件。
  3. 暂存所有文件。
  4. 输入提交描述并提交文件。(临时表将被清除。)
  5. 基于本地  分支创建新的本地分支。
  6. 调用新的分支  功能https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-03-1.jpg
  7. 在  功能  分支中,打开  file.js文件以进行编辑。
  8. 按<CTRL> + <H>将'var'的所有实例替换为'feature'。
    https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-04-2.jpg
  9. 保存文件。
  10. 打开Git窗格,确保在登台表中看到  file.js文件。
  11. 暂存所有文件。
  12. 输入提交说明并提交更改。
  13. 切换到    分支。
  14. 按<CTRL> + <H>将'var'的所有实例替换为'master'
    https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-05-1.jpg
  15. 保存文件。
  16. 打开Git窗格,确保看到该文件。 登台表中的js文件。
  17. 暂存所有文件。
  18. 输入提交说明并提交更改。

我们在master    features  分支的相同位置编辑了file.js文件  。这将创建一个冲突的变化,Git无法自行解决。 我们希望将功能  分支中完成的更改合并      分支。 为此,我们需要改变。

 

  1. 确认您仍在    分支上。
  2. 单击   Git窗格中的Rebase
  3. 选择  要素 本地分支。
  4. 单击确定。显示以下消息:
    https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-06-1.jpg
  5. 单击关闭。Git窗格现在处于rebase进度  模式。https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-07.jpg
    文件名旁边的(> <)图标表示存在冲突。https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-19.jpg
  6. 双击临时表中的文件以打开3-Way Merge编辑器。
  7. 双击file.js [compare]  选项卡以最大化视图。https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-08-1.jpg

 

扫描二维码关注公众号,回复: 5085988 查看本文章

在右侧,您可以看到源分支(功能)中的文件,在左侧,您可以看到目标分支()中的文件。在中间,您可以看到合并的文件(最初与左侧相同)。有8个冲突需要解决。

让我们使用3-Way Merge工具解决冲突  

  1. 单击https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-10.jpg(下一步)两次。这将带你到第9行。
  2. 单击  https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-11.jpg (按下左侧)。合并版本中的第9行现在包含从功能分支中获取的内容  。
  3. 单击https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-12.jpg(撤消)。合并版本中的第9行现在包含从分支获取的内容  。
  4. 单击https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-13.jpg(重做)。合并版本中的第9行现在包含从功能  分支中获取的内容。
  5. 单击https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-14.jpg(接受其更改)。合并后的版本现在包含从功能  分支中获取的内容。
  6. 单击  https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-15.jpg (按下右侧)第1行和第9行。
    合并版本中的第1行和第9行现在包含从分支获取的内容  。
  7. 保存更改。

我们已经修复了冲突,现在已准备好继续进行变革过程。

  1. 打开Git窗格。
  2. 阶段file.js文件
    https://blogs.sap.com/wp-content/uploads/2019/01/3-WAY-Merge-17.jpg
  3. 单击继续

你完成了!

 

新的比较编辑器也可用于双向比较

要进行比较,请在登台表中双击修改后的文件(*),或右键单击该文件并选择“ 比较” 

 

猜你喜欢

转载自blog.csdn.net/Sundam/article/details/86663560