手邊有一個專案,因為不可抗力的原因分散成兩個不同的 git repository ,一個放在 github 上,另一個放在公司自己架的 gitea 上。
github 的 repository 維護告一個段落之後,需要把上頭的歷史記錄和分支合併回公司的 gitea 。
中間遇到一些設定的問題,所以記下來。
1. 把兩個 repository 都 git clone
到本機端,以方便作業。
2. 進到 github 目錄 ,git checkout
一個和 master
相同的分支,我是用版本號 v2
,然後 git push
到 github 上。
3. 進到 gittea 目錄。我把要合併的 repository 以 revised
的名稱加到 git remote 的列表:
git remote add revised git@github.com:xxx.git
4. 把所有新的 repository 分支和標籤全部拉進舊的 repository:
git pull --allow-unrelated-histories revised
5. 建立一份新的 repository v2
分支的本地分支:
git checkout v2
6. 切換回舊的 repository master
:
git checkout master
7. 把 v2
合併到 master
:
git merge -n --allow-unrelated-histories v2
8. 發生了一大堆衝突。我要保留新的 repository 內容,所以使用
git checkout --theirs .
解衝突。
9. 把所有變動檔案加入此次合併中:
git add .
git commit
10. 推上 master
:
git push
11. 刪除不再需要的 revised
設定:
git remote remove revised
12. 確認遠端只剩原本的 gittea 設定,確認 commit 線圖正常,完工。
參考資料:Git 基礎 - 與遠端協同工作、git merge allow unrelated histories
文章標籤
全站熱搜
留言列表