【问题标题】:Is it possible to use Travis CI to push a subdirectory from one Git repo into another?是否可以使用 Travis CI 将子目录从一个 Git 存储库推送到另一个?
【发布时间】:2014-04-29 13:55:08
【问题描述】:

这似乎是一个奇怪的请求,但请听我说...我维护一个名为 Kickoff (https://github.com/tmwagency/kickoff) 的框架,每次我推送到主目录时,我都想将一个或几个子目录推送到其他 Kickoff-我也维护的相关回购。它们是https://github.com/tmwagency/kickoff-statixhttps://github.com/tmwagency/generator-kickoff。在这两种情况下,我都希望将 scss 目录推送到其他存储库。这将减少一些体力劳动,并希望其他两个存储库始终保持最新状态。

我已经设置了 Travis,但我对 git 内部结构不够熟悉,不知道这是否可能。如果不是,我还有其他方法可以实现我想要的吗?

非常感谢

【问题讨论】:

  • 您是否将添加项目设置为 git-submodules?
  • 不,目前子模块中没有任何内容。如果我不能做我想做的事,我认为这是我将探索的另一条路线......

标签: git github continuous-integration travis-ci


【解决方案1】:

我建议您将子项目集成为git-submodules

使用子模块,您可以通过打开子模块目录并调用git push 来使用after_success-hook 进行推送。

Travis-CI 还支持build-cycle-update of your submodules,它将子模块中的更改拉入您的超级项目。但听起来你只是想把你的东西推出构建。

【讨论】:

  • 谢谢@florianb,我想我需要使用子模块。不过,有一个问题,您是否建议我的其他项目(generator-kickoff 和 kickoff-statix)是子模块或 scss 目录?再次感谢
  • 嗨@Zander,我会反映现实世界的依赖关系。因此,如果您的scss/-目录将用于其他几个项目,这可能是让它成为子模块的提示。
  • 我认为你是对的,但我认为我宁愿把所有东西都放在一起。再次欢呼
  • @Zander - 不客气。我必须承认,创建子目录并不是处理问题的优雅方式——子模块的工作方式经常受到批评。另一种解决方案可能是子项目的部分合并,使用git read-tree 允许您的子项目合并目录。由于您正在寻找 travis 触发的解决方案,因此可能难以实现构建触发器.
  • 刚刚看过git read-tree,它可能正是我需要的。谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-02-12
  • 2015-03-01
  • 1970-01-01
  • 2013-12-05
  • 1970-01-01
  • 2015-12-24
相关资源
最近更新 更多