在开发会话期间跨多个设备同步代码的最佳方式

问题描述 投票:0回答:1

所以基本上我正在开发一个使用一组设备的项目,每个设备都承担 3 个不同角色之一。 由于我处于开发阶段,我正在对代码进行大量更改,并希望将此更改同步到相关设备。 我的设置方式是,我有一个 git 存储库,其中包含 4 个文件夹,每个角色一个文件夹(总共 3 个),一个用于共享代码的文件夹(3 个不同角色之间的共享库和 API)。

我在每个设备上保持代码最新的方法是首先在我的笔记本电脑上进行开发,然后每次我想测试更改时执行 git Push,然后我在每个设备上都有一个运行脚本从 GitHub 提取代码然后运行它。 然而,这种方法会导致大量的提交、推送和拉取。

有没有更好的方法来做到这一点,我可能会错过?

github version-control
1个回答
0
投票
You can streamline your development and deployment process by considering a few alternatives to your current approach:

1. 使用 Git 子模块或 Git 子树:

  • Git 子模块:如果您的共享代码是单独的存储库,您可以使用 Git 子模块将其包含在每个特定于角色的存储库中。这使您可以独立更新共享代码,并根据需要将更新拉入每个特定于角色的存储库。
  • Git 子树:Git 子树提供类似的功能,但比子模块更易于使用。它们允许您以维护共享代码历史记录的方式合并和拆分存储库。

2. 使用持续集成/持续部署(CI/CD)工具:

  • 实施 CI/CD 管道,自动构建代码并将其部署到设备。可以将其设置为在每次推送到存储库时触发或按计划触发,从而减少手动推送和拉取的需要。

3. 使用工具自动化部署:

  • 部署工具:使用 Ansible、Fabric 或自定义脚本等工具来自动化部署过程。这些工具可以帮助更有效地跨设备同步代码并处理诸如拉取最新代码和重新启动服务之类的任务。

4. 使用 Git Hooks:

  • 实施 Git 挂钩以自动执行设备上的某些任务。例如,接收后挂钩可用于触发脚本,该脚本会在收到新代码后提取最新更改并自动重新启动应用程序。

5. 创建开发服务器:

  • 设置保存最新代码的中央开发服务器。然后,设备可以从此服务器提取更新,而不是直接从笔记本电脑提取更新,从而减少推送和提取的次数。

6. 使用共享网络驱动器或文件同步服务:

  • 如果更改相对较小,请考虑使用共享网络驱动器或文件同步服务(如 rsync 或 Dropbox)来保持代码在设备之间同步。这对于频繁更新来说可以更快,并减少 git 操作的开销。

通过集成其中一种或多种方法,您可以减少提交、推送和拉取的频率,并使同步过程更加高效。

© www.soinside.com 2019 - 2024. All rights reserved.