2012-02-02 54 views
2

我想知道,如果這是去工作......Git的 - 從模板項目合併 - 沒有子目錄

說我有一個項目模板類似的東西:

. 
+ resources/ 
    + images/ 
     1.png 
     2.png 

我想使用這個項目作爲其他項目的模板,所以它們將基本上從模板「克隆」,但作爲單獨的存儲庫維護。

但是,我仍然希望能夠在模板出現時從模板中提取更新(但不必考慮推送到它)。

子模塊或子樹合併似乎不適合在這裏,因爲它不克隆到子目錄;它被有效地「映射」到根目錄或新項目。

一一我認爲可以工作,將是這樣的:

#setup project 
mkdir proj1 
cd proj1 
git init. 
touch .gitignore 
git add .gitignore 
git commit -m "Initial Commit" 

#setup main repo 
git remote add origin [email protected]:proj1.git 
git push origin master 

# load template repo as separate remote 
git remote add -f template [email protected]:template.git 

# import into current master 
# here I guess I have the choice of either: 
git merge template/master 
# OR 
git rebase template/master 

再後來在模板更新項目:

. 
+ resources/ 
    + images/ 
     1.png 
     2.png 
     3.png <-added file 

應該能夠做git pull template master從模板中提取更改並重覆上次合併/重新分級步驟以集成到項目中。

這是正確的方法,還是有更好的方法來做到這一點?

我會遇到一些麻煩,這沿着軌道?

感謝

回答

1

做到這一點,最好的辦法就是在模板回購模板分支。每個項目的每個克隆都會有一個從模板分支中創建的分支。當你想從模板更新時,只需獲取然後合併原點/模板。分支的名字取決於你。這只是一個建議。

我不會推薦重新佈置這可能會導致您的項目經歷一個相當多的痛苦,如果有一天,一個巨大的變化 - 尤其是在一個項目有很多提交後很長一段時間。你的重組將是一個非常漫長的過程。

+0

所以你說的是做我在問題中提出的建議..? (appart來自rebase) – Ben 2012-02-02 02:52:45

+0

小資多。我不確定還會有什麼幫助。也許結帳rerere? – 2012-02-02 08:42:26