[Git] Git pull 時出現 refusing to merge unrelated histories 錯誤訊息?

[Git] Git pull 時出現 refusing to merge unrelated histories 錯誤訊息?

先前從公司另一個部門,複製了某個 Git 專案 (假設名字叫 remote),

直接上傳成為新的儲存庫 (repo),名字取叫 local,

因此平常要用的時候,就是用  git clone 例如:

git clone https://github.com/test/local.git

 

不過最近原專案修正了一些 bug,想要從那邊取得修正版程式,

於是用  git remote add 把原本的 remote 專案加成 upstream 來源:

cd local/
git remote add upstream https://github.com/test/remote.git

 

檢查一下 .git/config 檔,看到我們除了 “origin” 這個來源之外,

確實還有另一個 “upstream” 來源:

testuser@localhost ~/local $ cat .git/config

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
    ignorecase = true
    precomposeunicode = true
[remote "origin"]
    url = https://github.com/test/local.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "upstream"]
    url = https://github.com/test/remote.git
    fetch = +refs/heads/*:refs/remotes/upstream/*

 

來試試從 “remote” 這個來源下  git pull 吧:

testuser@localhost ~/local $ git pull upstream master

remote: Enumerating objects: 9082, done.
remote: Counting objects: 100% (9082/9082), done.
remote: Compressing objects: 100% (897/897), done.
remote: Total 43205 (delta 8503), reused 8185 (delta 8185), pack-reused 34123
Merge branch 'master' of https://github.com/test/remote
Receiving objects: 100% (43205/43205), 2.32 GiB | 7.28 MiB/s, done.
Resolving deltas: 100% (33567/33567), done.
From https://github.com/test/remote
 * branch              master     -> FETCH_HEAD
 * [new branch]        master     -> upstream/master
fatal: refusing to merge unrelated histories

 

結果出現了 fatal: refusing to merge unrelated histories 錯誤訊息…

這是為什麼呢?

 

查了一下,因為目前 local 這個專案,和 remote 這個專案是沒有任何關聯的

(因為我們並不是用 Fork 方式複製專案,而是直接複製原始碼目錄)

想要強制設定的話,要加上  --allow-unrelated-histories 參數,例如:

git pull upstream master --allow-unrelated-histories

 

成功的話,接下來應該就可以使用像  git cherry-pick 之類的指令,

來把原 remote 專案的修正程式碼取來用囉~

 

參考資料:第 24 天:使用 GitHub 遠端儲存庫 – 入門篇 — 範例照打無法成功

(本頁面已被瀏覽過 19 次)

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料