27.1 创建、拉取和回溯子树

创建子树
  1. 添加新的远程仓库 添加一个名为 plugin 的远程仓库,指向插件的仓库地址:

    bash git remote add plugin https://path.to/remotes/plugin.git

  2. 创建子树 指定新的文件夹前缀为 plugins/demo,plugin 是远程仓库名称,master 指的是子树仓库的主分支:

    bash git subtree add --prefix=plugins/demo plugin master

拉取子树更新

从 plugin 拉取正常提交到子树:

git subtree pull --prefix=plugins/demo plugin master
回溯子树更新
  1. 指定要回溯的提交 在主项目中提交要回溯的更改:

    bash git commit -am "new changes to be backported"

  2. 切换到新分支进行合并,设置为跟踪子树仓库

    bash git checkout -b backport plugin/master

  3. 选择性地回溯提交

    bash git cherry-pick -x --strategy=subtree master

  4. 将更改推回插件源仓库

    bash git push plugin backport:master