首页/开发/Git 与协作速查/子树的更新与回推
进阶与大仓实践69 条

子树的更新与回推

subtree pull 拉取上游更新到前缀目录;subtree push 把本仓库中该目录的提交生成到目标分支,用于把本地改动回馈上游。

Git 与协作速查开发更新于 2026-10-12
拉取git subtree pull --prefix=<目录> <远程> <分支> [--squash]
回推git subtree push --prefix=<目录> <远程> <分支>
等价回推本质是 subtree split 后推送

常用示例

常用示例
git subtree pull --prefix=libs/common vendor main --squash
git subtree push --prefix=libs/common vendor patch-1
回推会基于目录历史重建提交,大型仓库耗时明显;频繁回推说明沟通方式可能需要调整。

易错点

  • 漏写 --squash 时两侧历史不一致,后续 pull 容易冲突频发
  • 回推目标分支持有权要求不同,先在测试分支验证再推真实分支

数据来源与参考

  • Git 官方文档:git-subtree(pull/push)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌