我有許多項目在單獨的Git存儲庫中。他們同樣也在單獨的eclipse項目中(因爲m2插件中的錯誤導致我無法長時間使用Maven插件使用父項目)。現在可以工作了。如何將Git項目遷移爲包含子項目的一個項目
因此,我將Maven中的項目合併爲一個基礎POM項目,並將其作爲其他項目的父項。然後我嵌套子項目。
當我將基礎項目提交爲git項目時,它已經決定子目錄是子模塊,即使根目錄中沒有.gitmodules文件。
看起來,要完成這項工作的唯一方法就是丟失正在合併的項目中的所有歷史記錄。
只是要超清晰,目前有:
Project A (repo A)
Project B (repo B)
Project C (repo C)
我要的是:
New Base Project D (repo D)
/Project A
/Project B
/Project C
我寧願不丟失任何歷史,但如果我必須這樣做,我想我可以閣樓之前的版本。我不認爲我需要子模塊,因爲這些模塊似乎適用於包含不受您控制的遠程回購。
將解決方案轉換爲bash腳本。它假設你想添加的子目錄位於與父目錄相同級別的子目錄中。那就是:
#! /bin/bash
git remote add -f $1 ../$1
git merge -s ours --no-commit $1/master
git read-tree --prefix=$1 -u $1/master
git commit -m "Added project $1"
Git是驚人的..
這看起來像一個很好的解決方案,會嘗試今晚。謝謝。 – Rob 2011-05-25 01:17:26
不錯,剛完成前2個項目就完成了。看起來很棒。謝謝。 – Rob 2011-05-25 02:20:57
Hi Dietrich?自遷移以來,首次嘗試並在其中一個文件上進行了git登錄。只顯示我的提交將文件移動到項目中,所以它看起來像這樣的歷史消失了。 – Rob 2011-05-26 22:46:52