2013-02-15 79 views
12

我創建了一個Laravel「樣板」項目,其中包含我常用的功能/庫。從現有的「樣板」回購項目創建新項目

使用這個樣板作爲新項目的基礎的正確git過程是什麼?我可以想到兩個選擇:

  1. boilerplatenewproject並開始。我沒有任何意圖將newproject更改回boilerplate
  2. 克隆boilerplate並將遠程原點更新爲新的清理回購。

我傾向於第二種選擇,因爲它感覺就像是一個很好的清晰的代碼樣板。我會因爲這樣做而失去任何很酷的git可能性嗎?

回答

12

考慮,你會從模板一個被存儲在Github上項目列入boilerplate GitHub的項目,我想:

  • 創建GitHub上一個新的空回購(有boilerplate沒有鏈接,沒有need for a fork
  • 克隆它
  • 克隆boilerplate在磁盤上的一個單獨的位置
  • 複製從本地合適的模板克隆到您新的本地克隆Github回購
  • git addgit commit)將該特定模板推回到您的新Github回購。
  • 從那裏開始
+13

另一個選擇是克隆'boilerplate',刪除'.git',然後'git init','git add .' ,'git commit' – aragaer 2013-02-15 08:43:16

+0

@aragaer不要忘記''樣板'可能包含許多模板供您選擇(這可能不是這種情況),再加上您需要重置遠程'origin'url。我會認爲我的方式更容易。 – VonC 2013-02-15 08:44:47

+0

刪除'.git'會重置所有的git。但我同意有幾個模板。 – aragaer 2013-02-15 09:19:37

3

「叉」不是Git的概念。 Git與Github混淆了嗎?如果你的意思是在Github上分發項目,那麼就像克隆repo一樣,克隆聽起來就像你正在尋找的東西。你永遠不會把變化推回到「樣板」回購。但是,您可以使用合併或重新綁定來將更新置入樣板回購項目中,然後將其分離出來。如果沒有這樣的東西是可取的,那爲什麼要用Git呢?只需製作一個目錄的遞歸副本,並從那裏開始。

+0

這需要您手動設置上游 - 以免您將更改推送到您的樣板庫! https://help.github.com/articles/changing-a-remote-s-url/ – 2016-12-29 08:02:53

3

沒有錯@ VonC的答覆工作,但您也可以使用hub創建a one-liner,有效地inits一個新的回購協議(本地和遠程)的基礎上你的種子回購:

clonefork() { 
    hub clone "$1" 
    cd "${1##*/}" 
    hub fork 
} 

在你的shell:

$ clonefork user/seed-repo 

通過 「cloneforking」 你的種子回購,你也可以得到a network graph顯示所有回購產生的回報。