【Github】refusing to merge unrelated histories

更新於 發佈於 閱讀時間約 3 分鐘

這是剛剛才發生的事,新鮮出爐

在完成短網址產生器的作業後,正準備將檔案上傳 Github
建立了新的 respository ,就像之前練習開新分支和合併一樣,按下了 merge 以後……

等愣!跳出了錯誤訊息:

refusing to merge unrelated histories


在驚恐之餘,趕緊搜尋了這個訊息

首先看到的是這一篇:How to Solve fatal: refusing to merge unrelated histories


裡面提到的方式是直接設定成允許合併
但能用圖形化介面處理的事情就先不用命令(x)

我注意到網頁中一個相關連結上的「rebase」
這個指令在我使用 sourcetree 的時候就有看到,就在 merge 旁邊

於是我動手開始查這兩個指令的差異


簡單的列出差異點如下:

*Merge
1. 在主分支上對副分支執行,將副分支合併進來
2. 不影響歷史紀錄
3. 會建立一個新的 commit 用來 merge

*Rebase
1. 在副分支上對主分支執行,副分支將會接到主分支後面
2. 會更動歷史紀錄(commit的時間等)
3. 不會建立用來 rebase 的 commit
 副分支會複製一份新的 commit(SHA-1值不同) 接到主分支後面

考量到將以 Github 的分支為主
我嘗試了在本機端的分支對來自 Github 的分支執行 rebase

伴隨著進度條完成,畫面上的 commit 變為同一條分支
而我原先本機端參差不一的 commit 建立日期瞬間全部變得一模一樣


雖然 commit 依然按照先前的順序一個不少的在上面,但心中有種什麼不見了的感覺……(是歷史紀錄)


為了寫這篇文章,我又重新回去翻了遍參考連結
裡面有提到 rebase 的主副誰先誰後,以最後的檔案來說沒什麼差別

那如果我以 Github 的分支,對本機端的分支執行 rebase 呢……?

按照參考連結的內容,我試著 reset 回還沒 rebase 的 commit 上
但是本機端的 commit 的 date 並沒有改變,看來是回不去了(?)

之後有機會再試試看用新分支 rebase 本機的分支好了


參考連結:
How to Solve fatal: refusing to merge unrelated histories
【Git教學】分支合併: merge 與 rebase 差異
合併分支【分支】 | 連猴子都能懂的Git入門指南
另一種合併方式(使用rebase) - 為你自己學Git | 高見龍

留言
avatar-img
留言分享你的想法!
avatar-img
Boochu的沙龍
0會員
1內容數
你可能也想看
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
2025 vocus 推出最受矚目的活動之一——《開箱你的美好生活》,我們跟著創作者一起「開箱」各種故事、景點、餐廳、超值好物⋯⋯甚至那些讓人會心一笑的生活小廢物;這次活動不僅送出了許多獎勵,也反映了「內容有價」——創作不只是分享、紀錄,也能用各種不同形式變現、帶來實際收入。
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
嗨!歡迎來到 vocus vocus 方格子是台灣最大的內容創作與知識變現平台,並且計畫持續拓展東南亞等等國際市場。我們致力於打造讓創作者能夠自由發表、累積影響力並獲得實質收益的創作生態圈!「創作至上」是我們的核心價值,我們致力於透過平台功能與服務,賦予創作者更多的可能。 vocus 平台匯聚了
Thumbnail
這篇文章提供關於Git分支(Branch)和合併(Merge)的進階教學,包含建立分支、在不同分支修改檔案、合併分支以及處理合併衝突等步驟,並輔以圖文說明,適合初學者學習。
Thumbnail
這篇文章提供關於Git分支(Branch)和合併(Merge)的進階教學,包含建立分支、在不同分支修改檔案、合併分支以及處理合併衝突等步驟,並輔以圖文說明,適合初學者學習。
Thumbnail
改稿真的不是一件需要太多情緒的事,把錯的挑出來、改掉,就這麼簡單!很少有什麼「大錯」需要去爭執誰對誰錯。不過真的滿多時候鬼遮眼或是偶爾真的會發生某種「明明前一版是對的,這一版居然是錯的」的鬼故事,把問題找出來解決就好!
Thumbnail
改稿真的不是一件需要太多情緒的事,把錯的挑出來、改掉,就這麼簡單!很少有什麼「大錯」需要去爭執誰對誰錯。不過真的滿多時候鬼遮眼或是偶爾真的會發生某種「明明前一版是對的,這一版居然是錯的」的鬼故事,把問題找出來解決就好!
Thumbnail
我們在「【開發智能合約 — Solidity系列】開發環境準備」這一個篇章有教學如何結合Remix與Github來儲存我們的程式碼,使用Remix Editor一段時間後,也順利提交Souce Code到Github,但過程中發現一個小問題,就是在Github上的歷程中發現每一次的提交作者都是「Re
Thumbnail
我們在「【開發智能合約 — Solidity系列】開發環境準備」這一個篇章有教學如何結合Remix與Github來儲存我們的程式碼,使用Remix Editor一段時間後,也順利提交Souce Code到Github,但過程中發現一個小問題,就是在Github上的歷程中發現每一次的提交作者都是「Re
Thumbnail
這篇文章將會講解 Git 專案上傳 GitHub 的流程。
Thumbnail
這篇文章將會講解 Git 專案上傳 GitHub 的流程。
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
這篇文章將會介紹分支的合併,以及它常見的分類。
Thumbnail
(其實圖片跟標題沒有關係) 只是我剛好看到這篇文章 覺得 很有感覺 但我覺得我還是可以做得到討厭的時候好好表達拒絕 一切 不在 本來的預想中 這陣子覺得的「迴圈」不被祂認為是「迴圈」 不過說真的過去都是發生在另一個類別 只有這次是發生在這個類別 硬要把不同類別都說成是迴圈 也可能有點強硬吧 唯一共同
Thumbnail
(其實圖片跟標題沒有關係) 只是我剛好看到這篇文章 覺得 很有感覺 但我覺得我還是可以做得到討厭的時候好好表達拒絕 一切 不在 本來的預想中 這陣子覺得的「迴圈」不被祂認為是「迴圈」 不過說真的過去都是發生在另一個類別 只有這次是發生在這個類別 硬要把不同類別都說成是迴圈 也可能有點強硬吧 唯一共同
Thumbnail
前言   這篇文章將會以 SourceTree 作為媒介,講述 Git 中關於伺服器資料儲存狀態的介紹,並介紹如何建立分支與應用。 資料上傳 | Data Commit   版本控制最簡單的介紹,其實就是把專案的資料上傳雲端,然後進行不同版本的分類,當有需要抓回某一個功能進行展演或比對時,可以從這雲
Thumbnail
前言   這篇文章將會以 SourceTree 作為媒介,講述 Git 中關於伺服器資料儲存狀態的介紹,並介紹如何建立分支與應用。 資料上傳 | Data Commit   版本控制最簡單的介紹,其實就是把專案的資料上傳雲端,然後進行不同版本的分類,當有需要抓回某一個功能進行展演或比對時,可以從這雲
Thumbnail
有此一說:身為軟體開發工程師,你可以沒有Facebook,但不能沒有GitHub。如果Git給予軟體開發工程師版本控制的能力,那麼GitHub則帶領你遨遊開源世界的美麗。 全世界最大的原始碼管理平台與開放原始碼社群 檢視公開軟體套件內程式碼,理解邏輯並正確使用 搜尋方便的套件與相關資源加速軟體開發
Thumbnail
有此一說:身為軟體開發工程師,你可以沒有Facebook,但不能沒有GitHub。如果Git給予軟體開發工程師版本控制的能力,那麼GitHub則帶領你遨遊開源世界的美麗。 全世界最大的原始碼管理平台與開放原始碼社群 檢視公開軟體套件內程式碼,理解邏輯並正確使用 搜尋方便的套件與相關資源加速軟體開發
Thumbnail
當我們能夠通過一個驗收測試後,就是時候將程式碼推送到遠端的服務中。跟基於分支的開發方式不同,我們是以 Trunk-based Development(主幹開發)的方式進行,也就是只有 main 一條分支,並且所有人都會提交進去。
Thumbnail
當我們能夠通過一個驗收測試後,就是時候將程式碼推送到遠端的服務中。跟基於分支的開發方式不同,我們是以 Trunk-based Development(主幹開發)的方式進行,也就是只有 main 一條分支,並且所有人都會提交進去。
追蹤感興趣的內容從 Google News 追蹤更多 vocus 的最新精選內容追蹤 Google News