2010-08-09 37 views
2

我有git存儲庫rA和rB,我只想複製rA中的特定目錄並保存它們的歷史記錄,例如,複製不同的git存儲庫內容並保留特定的目錄內容和歷史

rA 
- d1 
- d2 
- d3 
- d4 
rB (with d1 and d2 preserved) 
- d1 
- d2 

我迄今所做的是:

git remote add -f rA /path/to/rA 
git merge -s ours --no-commit rA/master 

這給了我在rA所有的文件,我想知道如果我可以使用命令如git-filter-branch排除d3d4?或者,我對如何處理和管理存儲庫有着非常錯誤的概念?

謝謝。

更新時間:

我通過使之成爲可能:

  1. 複製(CP -R)現有資源庫的目錄。
  2. 在這個新的目錄執行此命令:

    git的過濾分支--index過濾器「的git RM --cached -rgit LS-樹--name只--full樹-r $ GIT_COMMIT | grep -Ev「^ dirs | to | be | included」| xargs -r git rm --cached -r; fi' - - 所有

  3. 進行我前面提到的步驟。

回答

2

在將它添加到rB之前,您可以先將rA分成兩部分(爲了僅獲得所需的目錄)。

但是,一個簡單的合併可能會有很多衝突,因爲拆分會將所有SHA1重寫爲rA。
含義任何共同的歷史rA和rB可能共享丟失。

您的合併(-s ours)允許新的來自rA的文件出現在rB中。

相關問題