2013-11-26 78 views
0

我需要在git存儲庫中添加一個文件夾,並且該文件夾位於主(根)文件夾之外。我想讓git把它當作repo中的其他普通文件夾:就像它位於主文件夾中一樣。請參考git中的文件夾

當然,我可以在那裏複製它,並且必須一遍又一遍地做。但我想以某種方式參考它,找到一個更優雅的解決方案。

有沒有辦法做到這一點?

+0

submodule?子樹? – Eimantas

+0

@Eimantas,我更新了這個問題。這是一個文件夾。 –

+0

將它移入回購站並在其位置放置符號鏈接? – Johnsyweb

回答

1

無法將存在於git存儲庫根文件夾之外的文件夾添加到存儲庫中。

你可以做一些等同於此的方法是將該文件夾作爲自己的權利的git回購,並將其推送到遠程回購。然後在您現有的git存儲庫中進行repo子模塊回購。

因此,可以說,你有兩個文件夾:

foo/ 
    ..some code.. 
bar/ 
    .git/ 
    ..some code etc.. 

而且要確保foo是酒吧回購的成員,但你不能內移動。我們可以做富回購

git init foo 
cd foo 
git remote add origin my-external-host/foo.git 
git add . 
git commit -m "initial import" 
git push -u origin master 

我們可以再添加富作爲一個子模塊吧

cd bar 
git submodule add my-external-host/foo.git 
git submodule init 
git submodule update 
git add . 
git commit -m "importing foo as submodule" 
git push 

現在我們將有:

foo/ 
    .git/ 
    ..some code.. 
bar/ 
    .git/ 
    foo -> submodule to my-external-host/foo.git 
    ..some code etc.. 

這種方法的缺點就意味着,如果你對你需要的foo文件夾進行更改git commit,然後在bar/foo子模塊上執行git pull以獲得條形回購中的更新。

更好的解決方案是重新考慮你爲什麼要這樣做。 Git的設計目的不是爲了做你正在尋找的東西,而且要讓Git來做到這一點並不容易。

+0

1)你的意思是用相同的'remote' url創建2個git倉庫嗎? –

+0

不完全是,我會編輯我的答案來解釋,雖然正如我所說的,Git並不是設計用來做你想做的事情,最好的解決方案是不要嘗試去做,或者使用Git以外的東西來做它。 –