2012-03-29 49 views
3

看來,如果項目A具有遠程URL的子模塊,則git clone --recursive A B堅持要從遠程URL下拉每個子模塊存儲庫的副本。有沒有辦法讓git從A副本中複製子模塊存儲庫,而不是從遠程存儲庫中提取?如何獲得git clone --recursive A B使用A中的子模塊存儲庫?

我想我可以做這樣的事情:

git clone A B 
cd A 
git submodule --quiet foreach 'echo [submodule \"$path\"]\\n path = $path\\n url = $toplevel/$path ' > ../B/.gitmodules 
cd ../B 
git submodule sync 
git submodule update --init --recursive 
git checkout .gitmodules 
cd .. 

是否有更簡單的方法?

回答

1

一切都是本地的?

cp -r A B 

[迴應置評]

如果A是髒的,則:

(cd A; git stash) 
    cp -r A B 
    (cd B; git stash drop) 
    (cd A; git stash apply) 
+0

是的,這是偉大的,但它也拷貝本地更改到存儲庫,如果庫是骯髒的。但是,是的,如果A很乾淨,那看起來是一個很好的解決方案。 – 2012-03-31 05:29:12

相關問題