2014-07-01 42 views
0

我不擅長git-fu,所以我期待專家。我有一個模板webapp,並且我想根據這個模板創建幾個網站。新網站很少會將更新推回到模板,但我希望能夠捕獲模板的所有更新。克隆/分叉模板項目而不是分支?

是否明智,以創建分支,或直接克隆/叉? 在組織方面,我更喜歡fork,但對於Git很少有經驗,我不認爲這是一個好的方法。

我可以看到每種方法有哪些優點/缺點?

感謝

+0

您在項目之間更新的預期流程是什麼? – Sven

+0

如果我理解了這個問題(也許我沒有,哈哈)......我打算將模板項目用作其他人的「首發」。它們會在我開發它們時進行更新,但有時我可能會意識到我需要修復或添加一個功能到他們都將從中受益的模板。模板項目將被更新,然後更新將被提交給所有其他項目。再次,如果我沒有正確解釋這個問題,我對此感到抱歉,對git來說有點新鮮(超越一​​個人,簡單的項目,哈哈)。 – xtraorange

回答

1

克隆只是分支的方式不同,所以在討論是不是真的有關使用這些方法之一。

不過,我會反擊你的方法作爲一個整體。您打算創建一箇中心軟件項目,該項目將在其他幾個項目中發揮重要作用。雖然你可以通過分支或克隆來管理,但我建議不要使用。你有幾個不同的軟件項目,其中一個對其他人來說更重要。

我會用一個倉庫爲中心的東西,在某些點標記,可以使用的版本,並找到一種方法,讓使用該版本(以及任何後續版本)的地方。

要創建「子」工程,你搶這樣一個發佈版本,並添加在上面所有的自定義 - 但不要中央軟件塞進倉庫,只有所使用的版本的參考。

這在很大程度上取決於你正在開發的語言,因爲它必須利用一切該語言所提供的發佈軟件包集成到你的孩子的項目。這是一個依賴管理者的問題,到現在爲止,每種通用語言都應該有一個。

另一個要考慮的:你可能不會從頭開始的中央項目,你可能會使用大量的幫助,公開可用的庫的開始。這些是需要管理的另一層依賴關係,並將它們填充到中央存儲庫中也不是最好的主意。這裏使用相同的依賴關係管理系統(取決於語言)。

+0

感謝您的反饋意見;要清楚,我正在使用CakePHP框架在PHP中工作。 這裏的問題是我的主要項目不僅僅是一個「依賴」這是一個模板。模板的文件將被修改,這意味着我需要能夠跟蹤對模板和相關項目的更改,以便可以從可應用於子項目的模板項目生成某種形式的更新(不僅僅是替換文件,而是修改已經改變的文件)。我有什麼意義嗎? – xtraorange

+0

實用簡單示例: Child:index.php基於Template:index.php。 Child:index.php獲取一些更新,讓它顯示新聞文章。 模板:index.php得到更新,因爲我在我的原始代碼中發現錯誤。 我希望能夠將新的Template:index.php代碼推送到所有Child項目,以使用新代碼更新它們的index.php(不會丟失它們自己的更改) – xtraorange

+0

這將有可能通過分支/克隆,但長期管理不切實際。通過在您的子項目中編輯該文件,您很可能會更改文件的結構。父項目的任何更改都必須合併,這會導致衝突,因爲您在孩子的版本中所做的更多更改。解決衝突意味着你必須知道兩個版本中的哪些更改應該做什麼,以及如何將它們手動放在一起。你還記得去年夏天你做了一個孩子項目嗎?當你想要更新孩子時,你上一次做了什麼? – Sven