0
假設我有一個項目A
,它使用另一個項目B
。git - 包括其他項目
爲此,在A
的git存儲庫中有一個子文件夾,其中B
已被克隆。
現在,該文件夾以A's
回購同步很可能是剛剛在其加入該文件夾,一切A's
指數,用它做的最簡單方法。由於我沒有這種嵌套的git結構的經驗,我不知道這是否是一件聰明的事情。我以這種方式冒險做什麼,有什麼選擇?
假設我有一個項目A
,它使用另一個項目B
。git - 包括其他項目
爲此,在A
的git存儲庫中有一個子文件夾,其中B
已被克隆。
現在,該文件夾以A's
回購同步很可能是剛剛在其加入該文件夾,一切A's
指數,用它做的最簡單方法。由於我沒有這種嵌套的git結構的經驗,我不知道這是否是一件聰明的事情。我以這種方式冒險做什麼,有什麼選擇?
我想推薦:subtree merging,因爲當你的項目經常變化時,它更容易維護,就像@kowsky提到的那樣。
您只需要以正常方式創建每個存儲庫。在您的「收集器」存儲庫中,您可以將另一個存儲庫合併爲「收集器」目錄的子目錄。要做到這一點只需要運行這些命令:
$ git remote add -f AnotherRepo /path/to/that/repo
$ git merge -s ours --no-commit AnotherRepo/master
$ git read-tree --prefix=AnyDirectoryToPutItIn/ -u AnotherRepo/master
$ git commit -m "Merge AnotherRepo project as subdirectory"`
然後,拉AnotherRepo
到您的「收集器」儲存庫(或更新),使用子樹合併策略:
$ git pull -s subtree AnotherRepo master
這爲做到這一點的常見方式,它的工作:-)
更多關於這種方式,包括它的子模塊比較可能在這個混帳Git-Tools-Subtree-Merging
發現你有2個選項submodu les和子樹合併。我會建議:子樹合併,因爲它更容易維護。您只需要以正常方式創建每個存儲庫。在您的「收集器」存儲庫中,您可以將另一個存儲庫合併到「收集器」目錄的目錄中。如果你想把這些命令告訴我,我會添加一個答案。 – Teocci
如果子樹比子模塊更容易維護,這是有爭議的。根據經驗,如果庫「B」經常變化,它應該被用作子樹。如果它處於一個相對穩定的階段,它應該被用作子模塊。關於何時使用子模塊的一篇很好的文章可以在這裏找到(https://medium.com/@porteneuve/mastering-git-submodules-34c65e940407#.lhi1isank),關於子樹的相應文章是[here](https: //medium.com/@porteneuve/mastering-git-subtrees-943d29a798ec#.d5zzxh5kv)。 – kowsky
@Teocci確實可以隨意闡述一個答案。 – User1291