最近在做項(xiàng)目的遷移钞速,用到了git-filter-repo重寫git記錄贷掖。以下是詳細(xì)的操作步驟,希望可以幫助到大家渴语。
準(zhǔn)備全新的 work 倉(cāng)庫(kù)A苹威、work-new空倉(cāng)庫(kù)B、 work 倉(cāng)庫(kù)C驾凶。
1.安裝git-filter-repo牙甫,brew install git-filter-repo掷酗。(https://github.com/newren/git-filter-repo)
2.將work倉(cāng)庫(kù) A、C腹暖,切換到master分支汇在。
3.在work A中執(zhí)行 git filter-repo --path src/ --path pom.xml --path .gitignore(--path為要保留的目錄,執(zhí)行完成后會(huì)刪除所有無(wú)關(guān)的文件及其git記錄)脏答。
4.使用git remote -v 查看work-newB 的遠(yuǎn)程地址糕殉,得到 origin ssh://*** 。
5.將workA的git地址關(guān)聯(lián)至work-newB 倉(cāng)庫(kù)殖告,使用命令:git remote add origin ssh:***阿蝶。
6.在workA中推送代碼至work-newB倉(cāng)庫(kù)的指定分支,使用命令:git push origin refs/heads/master:**黄绩,即:git push origin 本地分支:遠(yuǎn)程分支羡洁。
7.為保證代碼準(zhǔn)確性,將work-newB的 src/等目錄移除爽丹,并從work C項(xiàng)目中拷貝相同的目錄覆蓋至work-newB筑煮,如有差異,則需要檢查一下是否有問(wèn)題粤蝎。
8.合并master時(shí)可能會(huì)報(bào)錯(cuò)真仲,提示無(wú)法合并無(wú)關(guān)分支,需要增加 --allow-unrelated-histories 參數(shù)解決初澎。