分析代码工作簿Branching入门指南

注意:以下翻译的准确性尚未经过验证。这是使用 AIP ↗ 从原始英文文本进行的机器翻译。

入门指南

当您创建越来越大且复杂的工作簿时,可能会遇到新的挑战:

  • 您可能希望通过引入新的更改来试验一个工作簿,但必须保留现有逻辑并避免破坏生产管道。
  • 您可能希望与同事在一个工作簿上协作,但需要避免在同时更改同一个工作簿时发生冲突。

分支提供了这些挑战的解决方案。在本教程中,我们将探讨以下概念:

创建分支

在这个例子中,我们正在处理一个简短的管道,该管道从一个泰坦尼克号乘客的数据集开始,并对其应用一些筛选。

branching_pipeline

提示

分支是您工作簿的一个工作副本,允许您安全地进行更改,并在以后将其合并到主版本中。了解更多关于分支的信息。

点击工作簿左上角的分支菜单,输入新分支的名称,然后点击创建。分支名称通常以所做更改的类型为前缀(例如feature/bugfix/),或者以您的用户名或首字母为前缀(例如jdoe/jd/)。

branching_create-branch

创建feature/filter-logic后,变换反映了分支创建时的数据和逻辑。如果master更改,您的分支feature/filter-logic将继续像以前一样运行。同样,您在feature/filter-logic上所做的任何更改都不会干扰master上的逻辑或数据更改。

branching_data-independence

在新分支上像往常一样进行任何更改。在这个例子中,我们将更改一行筛选代码的逻辑。

branching_code-changes

预览合并

提示

合并是您在分支上完成的工作的副本,与主副本的当前状态相结合。这允许您在将更改合并回主分支之前进行审查。

当您准备将分支上的更改引入原始分支时,点击右上角的预览合并

branching_prepare-merge

您现在进入合并状态。在这种状态下,您可以继续对逻辑进行更改并运行变换,直到您对将要引入的更改感到满意。顶部的运行受影响的按钮允许您一键运行此工作簿中所有受影响的变换——那些有逻辑更改的变换及其下游的所有变换。

branching_run-affected

在合并状态下,侧边栏显示此合并将引入的行数或列数的变化。这可以帮助您发现分支引入的更改,无论是您实际编辑的变换还是下游变换。

branching_merge-sidebar

要查看此合并将引入的逻辑更改,请选择任何更改过的变换并点击显示更改。这将显示逻辑更改的分屏视图。

branching_merge-diff

这也适用于模板,如下所示:

branching_merge-diff-templates

完成合并

当您对即将引入的更改感到满意时,点击合并分支以完成合并到master分支。您将看到一个带有两个切换开关的对话框:

branching_merge

第一个切换开关允许您选择是否将合并分支中的事务复制到要合并的分支中。假设在分支之后,我们在主分支上进行了额外的工作并提交了新的事务。如果此开关设置为True,则自创建feature/filter-logic分支以来在主分支上创建的事务将不再出现在数据集中。

第二个切换开关允许您选择是否从数据集中删除合并分支。请注意,这与删除工作簿分支本身不同,后者总是在合并时完成且不可配置。如果第二个开关为True,合并分支将从工作簿中创建的派生数据集中删除。

假设如上所述,您选择不将合并分支中的数据复制到master中。点击合并到master后,master分支将更新为您的合并逻辑。

解决合并冲突

随着您更频繁地使用分支,尤其是在与同事协作时,您可能会在两个不同的分支中修改相同的逻辑片段。让我们来看一下在这种情况下会发生什么。

当您点击预览合并时,如果master中已经引入了冲突的更改,将会提示您需要解决冲突才能继续合并。

branching_merge-conflict

点击冲突的变换将显示合并冲突视图。对于代码,行内冲突标记允许您选择要使用的逻辑。

branching_conflict-editor

如果冲突涉及模板,或变换在某个分支中被删除,您可以使用分屏视图解决冲突。

branching_conflict-split-screen

解决冲突后,您可以继续进行进一步的编辑并运行变换,以验证合并的逻辑是否按预期运行。当您准备就绪时,点击完成合并以像往常一样完成合并。