记Git报错-refusing to merge unrelated histories
轉(zhuǎn):https://blog.csdn.net/u012145252/article/details/80628451
環(huán)境
系統(tǒng):win7
git版本: 2.16.2.windows.1
問題
1、本地初始化了git倉庫,放了一些文件進去并進行了add操作和commit提交操作;
$git add -A
$git commit -m "start 2018-06-06"
2、github創(chuàng)建了git倉庫并建立了README文件;
?
3、本地倉庫添加了github上的git倉庫作為遠程倉庫,起名origin;
$git remote add origin https://github.com/tielemao/TielemaoMarkdown
1
4、問題來了,本地倉庫在想做同步遠程倉庫到本地為之后本地倉庫推送到遠程倉庫做準(zhǔn)備時報錯了,錯誤如下:
fatal: refusing to merge unrelated histories
(拒絕合并不相關(guān)的歷史)
解決
出現(xiàn)這個問題的最主要原因還是在于本地倉庫和遠程倉庫實際上是獨立的兩個倉庫。假如我之前是直接clone的方式在本地建立起遠程github倉庫的克隆本地倉庫就不會有這問題了。
查閱了一下資料,發(fā)現(xiàn)可以在pull命令后緊接著使用--allow-unrelated-history選項來解決問題(該選項可以合并兩個獨立啟動倉庫的歷史)。
命令:
$git pull origin master --allow-unrelated-histories
1
以上是將遠程倉庫的文件拉取到本地倉庫了。
緊接著將本地倉庫的提交推送到遠程github倉庫上,使用的命令是:
$ git push <遠程主機名> <本地分支名>:<遠程分支名>
也就是
$git push origin master:master
提交成功。
1
2
3
4
pull
git pull 命令基本上就是 git fetch 和 git merge 命令的組合體,Git 從指定的遠程倉庫中抓取內(nèi)容,然后馬上嘗試將其合并進你所在的分支中。
從遠程倉庫中獲得數(shù)據(jù),可以執(zhí)行:
$ git fetch [remote-name]
1
這個命令會訪問遠程倉庫,從中拉取所有你還沒有的數(shù)據(jù)。 執(zhí)行完成后,你將會擁有那個遠程倉庫中所有分支的引用,可以隨時合并或查看。
但是注意的是 git fetch 并不會自動合并或修改你當(dāng)前的工作。 當(dāng)準(zhǔn)備好時你必須手動將其合并入你的工作。
如果你使用 clone 命令克隆了一個倉庫,命令會自動將其添加為遠程倉庫并默認(rèn)以 “origin” 為簡寫。 所以,git fetch origin 會抓取克隆(或上一次抓取)后新推送的所有工作。
由于fetch命令后還要再做一步merge命令的操作,所以使用 git pull 命令來自動的抓取然后合并遠程分支到當(dāng)前分支。 (相當(dāng)于一次執(zhí)行fetch加merge命令)這可能會是一個更簡單或更舒服的工作流程。
轉(zhuǎn)載于:https://www.cnblogs.com/siyecao2010/p/11527340.html
總結(jié)
以上是生活随笔為你收集整理的记Git报错-refusing to merge unrelated histories的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Netlib文件转化为mps文件
- 下一篇: 【学习笔记】2019-Learning_