2010-11-11 145 views
1

我有一個回購包含single file中的一些實用功能。我想以某種方式將該文件添加到another repo,保持鏈接到舊的(所以我可以推/拉保持最新),同時保留所有其他文件。目標是有人拉第二個倉庫也應該得到實用功能,而不必擺弄多個倉庫。這是可行的例如cherry-pick或一些特殊的remote/clone語法,或者我必須將實用功能移動到一個單獨的回購?在另一個回購中克隆部分Git回購

編輯:看起來像Partial sharing of git repositories和GitHub的Working with subtree merge可能是相關的;檢查他們。

編輯2:在閱讀了關於子樹合併之後,如果我可以找到「要讀取/合併的樹對象的ID」,就好像會做這項工作,如git help read-tree所述。這只是一個提交ID?

回答

2

樹對象與提交不同。樹對象實質上代表一個目錄。提交將包含表示工作樹的樹;該樹可能包含其他樹(子目錄)以及blob(文件內容)。

你可以找到你所需要的目錄使用git ls-tree樹SHA1:

$ git ls-tree HEAD Documentation/howto 
040000 tree 7f4e8e870f2e4e7682a344e9a305f065388553e2 Documentation/howto 

,你可能想看看git-subtree,它封裝了很多這方面的東西在一個不錯的友好的方式。