1

注意:立即查看编辑部分以获得更好的解释

我是使用GIT的新手,所以如果我不使用正确的术语(仍在学习),我会提前道歉。

我正在使用BitBucket,因为现在我只想要私人项目。

我想知道执行以下操作的最佳策略是什么:

我有一个适用于 Android 的Phonegap/Cordova应用程序(所以它主要是 HTML+JS)。现在,我想使用该项目来创建一个 iOS 应用程序。大多数代码都是一样的,但是我需要在代码中更改特定于平台的内容,以使其适用于 iOS。

我的想法是能够:

  1. 创建 Android 版本的“分支”(或分支?),我可以在其中编辑 iOS 所需的任何内容。这个分支永远不会合并回 Android 版本。

  2. 每当我更新 Android 版本时,都能够将这些东西合并到 iOS 分支中。

这样我就可以始终将 Android 版本用作“主”,应用任何错误修复、新功能等,然后“自动将这些应用到 iOS 版本,同时保持其自己平台特定的代码行不变。

所以我不确定我到底需要如何在概念上设置并在这个项目中使用 GIT,这样我就可以将这些分支分开,因为我一直在关注的所有分支似乎最终都是通过合并那些入主,这正是我不想做的。

当然我可以手动完成所有这些,但是如果我可以用它来学习 GIT,那将是一个很好的方法,而且很有用!

提前致谢!

-------> 编辑

我收到的答案是很棒的想法,但我认为我没有很好地解释自己,所以我会尝试使用另一个例子。原因是我认为我的想法可以用于许多其他项目,而不仅仅是我上面解释的那个,所以我真的很想知道它是否可能以及如何实现。

这是另一个例子:

让我们想想 AOSP(Android 开源项目)和数百名开发人员创建的所有自定义 ROM。他们都使用相同的源(AOSP 或它的变体),克隆它,并将他们的自定义修改添加到他们自己的存储库中的操作系统。然后,只要 AOSP 源中有更新,他们只需要“更新”他们的克隆,但保留他们已经实现的任何内容。

按照与我的第一个示例的类比,我的 Android 应用程序将是 AOSP 源代码,而我的 iOS 应用程序将是克隆。

所以也许我应该以某种方式使用 2 个存储库?还是分支/叉子?这是让我困惑的部分...

4

2 回答 2

0

我认为您将源代码控制(git)与构建配置(无论您使用什么构建工具)混淆了。为什么不直接创建两个文件夹,/android 和 /ios,并将平台特定的东西放在那里呢?

于 2014-07-07T19:02:27.563 回答
0

android 应用程序和 ios 应用程序会共享任何文件吗?

如果没有,我会为每个项目推荐两个单独的存储库。

是否有很多文件共享?

如果是这样,请为每个项目使用一个存储库和离散文件夹:

my-awesome-project/
 |____ docs/
   |____ readme.md
 |____ site/
   |____ index.html
 |____ shared/
   |____ my-app.rb
 |____ ios/
   |____ xcode stuff
 |____ android/
   |____ cordova/phonegap stuff
于 2014-07-07T20:50:24.680 回答