2014-07-07 14 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