我想合併2個git存儲庫,並且我想保留文件歷史記錄,但我不想保留提交歷史記錄。換句話說,我想隨時保持這些變化,但我不關心SHA校驗和。合併後,我不需要舊版本庫。組合2個git存儲庫,保留文件歷史記錄,不保存提交歷史記錄
以下問題的答案不幫我,因爲我總是用兩個根回購結束並分開提交歷史:
我想要做的,與Detach (move) subdirectory into separate Git repository完全相反,其中git subtree
用於過濾所有影響子目錄中文件的提交。
我的兩個存儲庫有一些重疊的目錄結構,但沒有重疊文件(.gitignore
和.gitattributes
除外),我想將它們合併到存儲庫的根目錄。
這兩個存儲庫的標籤都有一個略有不同的命名方案,但指向特定版本。例如,repoA的標籤爲A-1.0.0,A-1.0.1,repoB的標籤爲B-1.0.0,B-1.0.1。我並不關心標籤,不同分支或一個分支之間的提交,但是在標籤處必須有某個合併點。
唯一的想法,我能想出這麼遠,可能工作(我已經嘗試了所有我能與子樹找到併合並):
- 添加repoB作爲遠程
- 在repoA添加一個分支(mergeB)在標籤A-1.0.0
- 從repoB櫻桃挑提交到標記B-1.0.0到分支mergeB
- 結帳A-1.0.0
- 合併之前在歷史上的一個點分支合併B
- 櫻桃採摘從舊標籤A-1.0.0 + 1 repoA每次提交到老臉
- 分支再次
- 重複步驟3-7爲下一個標籤
- 當一切都做,做一個rebase(也許交互式)來清理東西
這聽起來像很多手動工作,有沒有更好的方法來做到這一點?
我想我不清楚。我想保留文件歷史記錄,但我不想保留提交散列。從svn到git的轉換進行得非常順利,這是由我的git回購包含標籤的事實所暗示的。事實上,他們來自svn並不相關並且令人困惑,所以我會編輯它。 –