2012-09-28 57 views
1

我有一個項目使用兩個獨立維護的庫。爲了避免每次更改庫時手動複製文件的麻煩,我設法使用this example from github創建了兩個子樹。git subtree標籤瀏覽

我有我自己的代碼在這個工作目錄的根。我也有foolib/barlib/作爲來自其他兩個回購的子樹。假設我想看看是否可以使用foolib的1.20版本而不是主版本,因爲我知道這個版本是好的,不會改變。那麼也許我想看看1.21是否會更好。我的想法是,如果我做git checkout foolib-1.20會把我的foolib/版本1.20代碼。那不會發生。相反,整個工作目錄被替換爲foolib 1.20。這不是很有用,似乎否定了git subtree的用處。

回答

1

如果您需要引用特定提交對存儲庫,這將是更好地使用submodules

這樣,您的父目錄可以記錄對這些庫回購庫的引用,以及它們的確切提交。
注意這不會阻止你直接從你的工作樹恰克庫(只要你提交併推送這些庫回到自己的上游回購,提交你的父母回購:詳見「True nature of submodules」)

然而,子模塊可能包含一些陷阱(參見「how exactly does git submodule work」)