2013-02-25 341 views
4

我試圖利用git中的子樹特性,我可以有一個引用其他repo的repo,因此似乎具有兩個repos的所有文件。我已閱讀了幾個簡介herehere並試圖關注它們。git pull subtree刪除所有內容

所以我有兩個倉庫在git集線器。我這樣做

git checkout testBranchA 
git pull origin testBranchA 
git remote add external [email protected]:reharik/repoB 
git fetch external 
git checkout -b external external/testBranchB 
git read-tree --prefix=src/ -u external 
git commit -m "added subtree" 

所以現在我看看我的文件系統,我看到所有的文件都從回購和一切都很好。然後我做

git pull -s subtree external testBranchB 

而且似乎在本地回購的一切都被刪除了。 INFACT第一它

removing src/... 
上的所有文件

的話,好像做的,你看到紅色和綠色+的和-'s所有文件合併,那麼它

delete mode 100644 src/... 

所有文件

所以我不知道我在做什麼錯,但顯然這是一些東西。

任何幫助,將不勝感激

===編輯對不起不斷變化的命令,我有點在這一點上炒,但我覺得這是我使用

+0

我有同樣的問題。後來我發現當我添加子樹('git subtree add')時,我忘記使用'--prefix'。它應該警告過我,就像'git subtree pull'一樣,但它沒有。一旦我在'add'時用正確的'--prefix'重做它,後面的'pull'工作得很好。 – KFL 2017-01-10 00:46:15

回答

0

這最後的語法git pull -s subtree ...命令似乎不正確,因爲它沒有考慮到子樹的位置。因爲它會嘗試在根級別將兩棵樹一起粉碎,這可能是文件被刪除的原因。

嘗試,而不是:

git pull -s recursive -X subtree=src/ external testBranchB