2014-07-07 16 views
1

注git的策略:见部分编辑马上为一个更好的解释与2个分支项目,不应该合并

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

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

我想知道什么是做到以下几点,最好的策略:

我有一个的PhoneGap /科尔多瓦应用程序(所以它主要是HTML + JS)为Android。现在,我想使用该项目来创建一个iOS应用程序。大部分代码都是相同的,但是会有特定于平台的事情,我需要在代码中进行更改以使其适用于iOS。

我的想法是将能够:

  1. 做一个“分支”(或叉?)的Android版本在那里我可以编辑任何必要的iOS。这brach永远不会合并回到Android版本。

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

这样,我可以随时使用的Android版本为“主”,适用于任何bug修复,新功能等,然后在“自动套用那些iOS版本,同时保持自己的平台特定的行代码原封不动

所以我不确定的是我需要从概念上设置和使用GIT这个项目,所以我可以保持这些分支独立,因为我一直在看分支似乎最终通过合并到主人,这正是我不想做的。

当然,我可以做所有这些手动,但如果我可以用它来学习GIT,那将是一个很棒的方式,并且非常有用!

提前致谢!

------->编辑

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

这是另一个例子:

让我们想想AOSP(Android开源项目),并全部由成千上万的开发人员创建的自定义光盘。它们都使用相同的源代码(AOSP或其变体),克隆它,并将自定义修改添加到自己的存储库中的操作系统。然后,只要AOSP源中有更新,他们只需要“更新”他们的克隆,但是保留他们已经实施的任何内容。

继我的第一个例子的类比,我的Android应用程序将是AOSP源代码,我的iOS应用程序将是克隆。

所以,也许我应该以某种方式使用2个存储库?或者分支/叉子?这是混淆我的部分...

回答

0

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

+0

嗯,我不困惑,我知道如何建立两个版本没有问题。问题是这些版本共享大部分代码,但不是全部,所以我正在寻找一种方法来简化将来更新两个版本的过程,当我在共享代码中实现更改时 – Albert

+0

我的评论就是这样。创建文件夹/ src/common,src/ios和src/android。如果你想更新影响两个版本的代码,它就在公共文件夹中,所以只需编辑它。两个版本都会同时受到影响。使用分支来实现新功能,并且当你很高兴时将它合并回主。阅读http://git-scm.com/doc以获得基本的了解。 –

+0

好的谢谢,我会检查出来。如果两个版本中的代码不能移动到单独的文件,该怎么办?我不确定如果不在原始应用程序中重写相当多的代码(已存在),就会发生这种情况。我猜那更糟的是我能做到这一点,但我正在跳跃寻找更好的方式 – Albert

0

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

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

是否有很多文件共享?

如果是这样,使用一个存储库和独立的文件夹为每个项目:

my-awesome-project/ 
|____ docs/ 
    |____ readme.md 
|____ site/ 
    |____ index.html 
|____ shared/ 
    |____ my-app.rb 
|____ ios/ 
    |____ xcode stuff 
|____ android/ 
    |____ cordova/phonegap stuff 
+0

请参阅我的编辑问题中的一个更好的例子:) – Albert