分支用于软件版本控制。称为分支的项目文件副本允许团队同时在项目的并行版本上工作,同时保留未编辑的副本。这消除了意外覆盖他人对项目文件更改的风险。
当创建新分支时,主项目会被复制,所做的更改仅限于该分支。当更改完成后,分支会合并回主项目。可以同时处理多个分支,合并后,分支会自动删除。合并的分支在选项卡中保留,以便简化历史跟踪。现有分支的标签会被复制到新分支。
限制
-
除译员和临时用户外,所有角色均可访问视图。
-
合并无法撤销,分支无法恢复删除。
-
在特定分支中创建的Jobs在主项目中不可见,反之亦然。当一个分支合并到主项目时,其中的任何开放工作都会丢失。
-
视图中的报告仅反映活动分支的状态。将一个分支合并到主项目中会更新主项目报告。
-
视图仅包含活动分支中的活动。分支中的活动在主项目中不可见,反之亦然。当将分支合并到主项目时,分支中的活动会丢失。
-
GitHub同步只能在主项目上使用,而不能在分支上使用。
-
在分支中做出的Comments在主项目中不可见,反之亦然。
-
在分支中创建的在主项目中不可见,反之亦然。当一个分支合并到主项目时,其中的任何开放订单都会丢失。
-
翻译者不能被限制在特定分支上,但被授权在特定locales上工作。应指导翻译者如何处理分支。
在选项卡的中启用分支,并提供保护主分支不受更改的选项。
启用后,项目屏幕上会显示一个分支菜单,可以选择工作分支。要在CLI中指定分支,请使用
--branch参数:
--branch <branch_name>
分支在项目的选项卡上列出,显示创建和合并信息。分支也可以被删除或合并,并且可以在选项卡中为该分支创建工作。
提示
点击 切换到新的分支 在 选项卡中访问新的分支界面和功能。
要通过 API 或 CLI 列出项目的所有分支,请运行:
$ phrase branches list --project_id <project_id> # 例如: $ phrase branches list --project_id 1d8ae641902624df63ce6fbd64ff9549$ phrase branches list <project_id>
要通过 API 或 CLI 删除一个分支,请运行:
$ phrase branches delete --project_id <project_id> --name <branch_name> # 例如: $ phrase branches delete --project_id 1d8ae641902624df63ce6fbd64ff9549 --name test-test$ phrase branch delete <project_id> <branch_name>
管理员、项目经理和开发者角色可以在 翻译编辑器 中通过 API 或 CLI 创建新分支。
要在翻译编辑器中创建一个分支,请按照以下步骤操作:
要通过 API 或 CPI 创建一个分支,请运行:
$ phrase branches create --project_id <project_id> --data <data>
要在推送翻译时创建一个分支,请运行:
$ phrase push --branch <branch_name>
在对分支进行更改后,可以将其合并回主翻译中,以便纳入任何新的翻译。
在合并期间,仅将以下资源的更改应用于主分支:
-
区域
-
键
-
翻译
对其他资源(如活动、作业和订单)的更改不予应用。
冲突
当一个资源(翻译、键或区域)在创建分支和将其合并回主项目之间的时间内在主项目和分支中都发生了变化时,就会发生冲突。例如,在创建分支后,主项目中的翻译和键设置(如复数形式)可能发生了变化,使得分支中的值与主项目中的值不同。
要合并分支,请按照以下步骤操作:
-
在项目的 视图中,选择一个要合并的分支,然后单击 比较和合并。
将打开 页面。可以通过单击单元格访问在合并过程中要修改的翻译信息。
-
如果存在冲突,请选择合并策略:
-
选择 以拒绝冲突更改并保留现有翻译。
-
选择 以用分支中的更改替换现有翻译。
-
-
单击 合并分支。
分支已合并到主项目中。
要通过 API 或 CPI 合并分支,请运行:
$ 短语 分支 合并 \
--project_id <project_id> \
--name <name> \
--data '{"strategy":"use_main"}' \
--access_token <token>
-
使用_分支通过应用来自分支的更改来解决冲突,如果未指定,则为默认值。 -
使用_主分支通过拒绝来自分支的更改来解决冲突。使用_主分支也受支持。
使用 CLI 时,使用 --branch 参数指定要推送或拉取的分支。
$ phrase push --branch <branch_name> $ 短语 拉取 --branch <branch_name>
如果指定的分支在项目中不存在,客户端将创建它。
使用 --use-local-branch-name 通过活动 git 分支的分支名称进行推送和拉取:
$ 短语 推送 --use-local-branch-name $ 短语 拉取 --use-local-branch-name
所有接受项目参数的 API 端点也支持 --branch 参数,以对项目的特定分支执行操作:
$ 短语 上传 创建 <project_id> \
--branch <branch_name>
--file /path/to/my/file.json \
--file-format json \
--locale-id abcd1234cdef1234abcd1234cdef1234 \
--tags awesome-feature,needs-proofreading \
--locale-mapping "{"en": "2"}" \
--format-options "{"foo": "bar"}"
重要
截至2025年12月10日,所有新客户默认启用新分支。
现有客户可以通过在项目的选项卡中选择切换到新分支来选择加入新分支模型。
新的分支体验引入了重新设计的架构,以提高性能、稳定性和灵活性,并扩展版本控制能力。它使团队能够并行处理内容的多个版本,保持长期运行的分支最新,并更有效地合并更改。
新功能包括:
-
多级(堆叠)分支
分支可以从任何其他分支创建,而不仅仅是主分支。最多支持5个分支级别。
-
在分支之间同步更改
长时间运行的分支可能会过时,因为其基础分支中的更改不断累积。新的分支引入了同步功能,有助于防止不一致。
自创建以来超过30天未合并的分支计入字符串 管理的词汇。
管理员、项目经理、设计师和开发人员角色可以在选项卡中、通过API或在CLI中创建新分支。
要从用户界面创建分支,请按照以下步骤操作:
要通过 API 或 CPI 创建一个分支,请运行:
$ phrase branches create --project_id <project_id> --data <data>
要在推送翻译时创建一个分支,请运行:
$ phrase push --branch <branch_name>
同步确保工作分支与其来源分支的最新更改保持一致。这样,翻译人员可以在长期项目中使用更新版本的内容。
要将分支与其基础分支同步,请按照以下步骤操作:
-
在选项卡中,点击所需分支旁边的与基础分支同步。
显示页面,包含有关任何冲突和要与基础分支同步的更改的信息。
-
点击任何检测到的更改以在同步之前进行审查。
显示有关所选更改的详细信息的表格。
-
选择同步并确认以应用更改。
更改被添加到基础分支,并在翻译编辑器中可见。关于最后一次同步的信息显示在列的选项卡中。
分支同步也可以通过API执行,方法是运行此CLI命令:
$ phrase branches sync \
--project_id <project_id> \
--name <branch_name> \
--data '{"strategy":"use_main"}' \
--access_token <token>
-
使用_分支通过应用来自分支的更改来解决冲突,如果未指定,则为默认值。 -
使用主分支通过驳回分支的更改来解决冲突,并参考基础分支。在处理堆叠分支时,基础分支不一定是实际的主项目分支。
在分支中完成翻译或特定版本的工作后,任何更改都可以合并到基础分支中。一旦所有更改在链上合并,顶层分支可以合并到主分支中。
成功合并后,合并的分支会自动删除,并在选项卡中显示以进行历史跟踪。
在合并期间,仅对以下资源的更改应用于基础分支:
-
区域
-
键
-
翻译
对其他资源(如活动、作业和订单)的更改不予应用。
具有活动子分支的分支在子分支被删除或先合并之前无法合并。
冲突
当资源(翻译、键或区域)在当前分支和其基础分支中都发生更改时,会发生冲突,时间是在分支创建或最后同步之后。冲突可以在分支堆栈的任何级别发生,而不仅仅是在合并到主分支时。
要合并分支,请按照以下步骤操作:
-
在项目的选项卡中,点击所需分支旁边的与基础分支合并。
页面打开。可以通过单击单元格访问在合并过程中要修改的翻译信息。
-
如果存在冲突,请选择合并策略:
-
选择以驳回冲突更改并保留现有翻译。
-
选择 以用分支中的更改替换现有翻译。
-
-
点击合并并确认以应用更改。
分支已合并到基础分支并自动删除。要查看合并的分支历史,请在页面中打开选项卡。
要通过 API 或 CPI 合并分支,请运行:
$ 短语 分支 合并 \
--project_id <project_id> \
--name <name> \
--data '{"strategy":"use_main"}' \
--access_token <token>
-
使用_分支通过应用来自分支的更改来解决冲突,如果未指定,则为默认值。 -
使用_主分支通过拒绝来自分支的更改来解决冲突。使用_主分支也受支持。
合并 操作还会自动删除合并的分支。
使用 CLI 时,使用 --branch 参数指定要推送或拉取的分支。
$ phrase push --branch <branch_name> $ 短语 拉取 --branch <branch_name>
如果指定的分支在项目中不存在,客户端将创建它。
使用 --use-local-branch-name 通过活动 git 分支的分支名称进行推送和拉取:
$ 短语 推送 --use-local-branch-name $ 短语 拉取 --use-local-branch-name
所有接受项目参数的 API 端点也支持 --branch 参数,以对项目的特定分支执行操作:
$ 短语 上传 创建 <project_id> \
--branch <branch_name>
--file /path/to/my/file.json \
--file-format json \
--locale-id abcd1234cdef1234abcd1234cdef1234 \
--tags awesome-feature,needs-proofreading \
--locale-mapping "{"en": "2"}" \
--format-options "{"foo": "bar"}"