解決Git?merge時(shí)報(bào)錯(cuò):refusing?to?merge?unrelated?histories問題
一、問題
今天將feature分支合并到master時(shí)報(bào)錯(cuò):refusing to merge unrelated histories(拒絕合并無關(guān)歷史)
報(bào)錯(cuò)原因:
當(dāng)嘗試從遠(yuǎn)程倉庫"gitee.com:zpg13/system_school"的master分支拉取最新更新并合并到本地的master分支時(shí),Git拒絕了這次合并,原因是兩個(gè)分支擁有不相關(guān)的歷史記錄。
二、解決辦法
1、將feature分支的東西追加到master分支中
這種方法會(huì)保留master分支里原本的內(nèi)容,并且 future的歷史記錄 會(huì) 合并到 master的歷史記錄中
步驟:
首先切換到master分支
git checkout master
然后在執(zhí)行merge指令的時(shí)候添加上: --allow-unrelated-histories 參數(shù)
git merge feature --allow-unrelated-histories
執(zhí)行
git merge feature --allow-unrelated-histories
命令后,可能會(huì)出現(xiàn)以下界面:Git要求您提供一個(gè)提交消息來解釋為什么這次合并是必要的。
請(qǐng)?jiān)诰庉嬈髦休斎肽胍奶峤幌?,然后?code>Esc鍵退出編輯模式,再按:wq
輸入并按Enter
鍵保存并退出Vim編輯器。
如果您不想進(jìn)行任何合并操作,只需按Esc
鍵退出編輯模式,然后在命令行中輸入:q
并按Enter
鍵退出Vim編輯器。
請(qǐng)注意,如果存在合并沖突,您需要先解決這些沖突,然后再繼續(xù)合并操作。
此時(shí)就會(huì)提示合并成功,然后正常推送到遠(yuǎn)程分支即可
2、將feature里的東西直接覆蓋到master分支中
這種方法會(huì)丟失master中的所有數(shù)據(jù),并且將feature中的歷史記錄同步到master的歷史記錄中
先來看看合并前feature的歷史記錄:
然后再看看合并前master的歷史記錄:
合并過程:
首先切換到master分支
git checkout master
然后使用以下命令進(jìn)行合并
git reset --hard origin/feature
再次查看master分支的日志時(shí)可以發(fā)現(xiàn),master中的歷史記錄已經(jīng)替換成了feature的歷史記錄
然后推送的時(shí)候使用 -f 參數(shù),強(qiáng)推到遠(yuǎn)程倉庫即可
git push origin master -f
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
TCP協(xié)議詳解_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
本文描述了TCP協(xié)議,首先簡(jiǎn)單介紹了TCP完成了一些什么功能;介紹了TCP報(bào)文格式,以及典型報(bào)文的數(shù)據(jù)格式。現(xiàn)在通過本文給大家詳細(xì)介紹,感興趣的的朋友一起看看吧2017-07-07git克隆遠(yuǎn)程倉庫的指定分支方法(附常用git配置命令)
這篇文章主要介紹了git克隆遠(yuǎn)程倉庫的指定分支方法(附常用git配置命令),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07