背景描述
某個項目工程已經(jīng)關(guān)聯(lián)了遠程倉庫的分支,現(xiàn)在需要取消關(guān)聯(lián),然后重新關(guān)聯(lián)到另一個遠程倉庫的分支。
操作步驟
(1) 取消與當(dāng)前遠程倉庫的關(guān)聯(lián)
// 查看遠程倉庫
git remote show origin
// 查看當(dāng)前分支關(guān)聯(lián)的遠程分支
git branch -vv
// 取消與遠程倉庫關(guān)聯(lián)
git remote remove origin
(2) 重新添加需要關(guān)聯(lián)的遠程倉庫
git remote add origin git@xxxxx:xxx/xxx.git
(3) 提交到遠程分支
// 首先pull一下
git pull origin develop
// 然后提交至遠程分支
git push --set-upstream origin develop
問題記錄
問題描述
在執(zhí)行上述步驟(3) git pull命令的時候,出現(xiàn)如下錯誤提示:
* branch develop -> FETCH_HEAD
fatal: refusing to merge unrelated histories
(拒絕合并不相關(guān)的歷史)
問題原因
這是由于在gitlab創(chuàng)建遠程分支的時候,自動添加了readme.md和.gitignore文件,而本地的項目中也有這兩個文件,這就導(dǎo)致了本地與遠程分支出現(xiàn)文件沖突。
解決方案
在執(zhí)行git pull命令的時候帶上--allow-unrelated-histories選項,該選項可以合并兩個本地分支和遠程分支的歷史。
git pull origin develop --allow-unrelated-histories