GIT 有几个项目的项目

GIT Project with several projects

我有一个用 Titanium 构建的移动应用程序,我正在销售给我的客户。 我有一个我更新的主要源代码,然后 copy/modify 每个客户的项目并为 App Store 构建。这对于 2-3 个项目来说很容易,但现在我遇到了一个大问题。我是 Git 的新手,我想问一下是否有任何方法可以轻松管理这个项目。 例如更改我的源代码,然后自动将更改推送到其他项目。我应该使用分支机构来实现吗? Note:My 源代码文件夹在所有项目的同一文件夹中,因此修改中没有任何变化。我还有其他 UI 自定义文件夹和其他图像文件夹

您通常会有一个与项目无关的 master 分支和多个 projectX 分支。所有项目的任何特定内容都将在 master 上开发。 project 分支将合并来自 master 的所有更改。

要在分支之间切换工作树,可以使用命令 git checkout projectX 命令。然后使用 git merge master 从 master 导入提交。

或者,当您想同时访问所有项目的源代码时,您可以使用单独的存储库而不是分支。在单独的目录中为每个项目创建一个主 git 存储库和一个单独的 git 存储库。在每个项目上,将 master-repository 设置为要从中提取的来源。要从主存储库导入,您将使用 git pull 而不是 git merge.

当您想自动化项目 branches/repositories 中的 merging/pulling 时,我建议您使用 shell-脚本,它会自动为每个项目执行此操作。为了更奢侈,您可以将其设置为 master 分支的 post-commit hook。但请记住,由于合并冲突,拉取可能会失败。

最好的建议可能是花一天时间熟悉 git,尽可能多地阅读它,并尝试一下。谷歌搜索“git workflows" yields for example these two documents。文档通常涉及 "distributed" 工作流程(多人),但您可以应用相同的技术来管理您的项目。

简而言之,是的,分支会在这里帮助你。如果对您的设置没有更深入的了解,我会推荐一个开发分支,所有每个客户端的分支都从它开始。然后您可以定期将您的开发分支合并到每个客户端分支中以发布您的应用程序。如果您一次处理多个功能,您还可以将功能分支合并到开发分支中,然后将其合并到每个客户端分支中。

为了让这个过程尽可能轻松,我会尝试自动化。尝试将每个应用程序的信息纳入配置文件(构建时间或 运行 时间配置),并为所有这些设置一个通用代码库。尽可能自动化构建过程。如果您在合并分支时经常遇到合并冲突,请考虑如何重构您的代码以在将来解决此问题。