从多个代码库上传更改

某些更改需要同时修改多个代码库。可以通过两种方法完成此操作:软转换和硬转换。

一般来说,相较于硬过渡,柔性过渡效果更佳(如需了解更多详情,请参阅跨多个花瓣进行更改)。这意味着,如果对一个代码库的更改依赖于另一个代码库中的更改,则您必须等到相应的提交完成之后,才能将相关提交提交到队列。

大多数多花瓣更改(包括对 FIDL 协议的更新)都应尝试使用软转换,而协调跨多个花瓣的更改可能需要硬转换。通常,应使用上述参考资料中介绍的技术,尽可能避免硬转换。

使用 jiri 上传

如需同时上传更改,您需要在所有代码库中创建一个同名的分支。

请执行以下操作:

  1. 在 Fuchsia 代码库中进行并提交第一项更改:

    1. 转到代码库:

      cd examples/fortune
      
    2. 创建一个新分支,例如 add_my_new_feature

      git checkout -b add_my_new_feature
      
    3. 修改并添加与地图项相关的文件:

      git add <my_feature_related_files>
      
    4. 提交您的第一次更改:

      git commit
      
  2. 在另一个 Fuchsia 代码库中进行并提交第二项更改:

    1. 转到第二个代码库:

      cd fuchsia/build
      
    2. 创建一个具有相同名称 add_my_new_feature 的新分支:

      git checkout -b add_my_new_feature
      
    3. 修改并添加与地图项相关的文件:

      git add <more_of_my_feature_related_files>
      
    4. 提交您的第二项更改:

      git commit
      
  3. 使用 -multipart 上传代码库中具有相同分支名称的所有更改:

    jiri upload -multipart
    

提交更改后,清理本地分支:

cd examples/fortune
git branch -d add_my_new_feature

cd fuchsia/build
git branch -d add_my_new_feature

使用 Git 命令

您还可以使用 git 命令跨代码库上传所有更改。这些步骤与使用 jiri 上传中的步骤相同;但是,与第 3 步中的 jiri upload -multipart 不同,请使用以下 git 命令从您修改的每个代码库中上传您的更改:

git push origin HEAD:refs/for/main

请注意,必须从每个代码库的工作目录运行此命令。