我剛剛在git中將分支合併到master時遇到問題。首先,我通過運行git ls-remote
來獲得分支名稱。我們稱該分支爲「分支名稱」。然後我跑git merge branch-name
命令,並得到以下結果:如何解決git的「不是我們可以合併的東西」錯誤
fatal: branch-name - not something we can merge
如何解決這個問題?
我剛剛在git中將分支合併到master時遇到問題。首先,我通過運行git ls-remote
來獲得分支名稱。我們稱該分支爲「分支名稱」。然後我跑git merge branch-name
命令,並得到以下結果:如何解決git的「不是我們可以合併的東西」錯誤
fatal: branch-name - not something we can merge
如何解決這個問題?
如How does "not something we can merge" arise?所示,由於您試圖拉取不存在的分支,因此分支名稱中的拼寫錯誤可能導致此錯誤。
如果這不是問題(與我的情況一樣),那麼很可能您沒有要合併的分支的本地副本。 Git需要兩個分支的本地知識才能合併這些分支。您可以通過檢出要合併的分支並返回到要合併到的分支來解決此問題。
git checkout branch-name
git checkout master
git merge branch-name
這應該工作,但是如果你收到一個錯誤說
error: pathspec 'remote-name/branch-name' did not match any file(s) known to git.
你需要獲取遠程(可能,但不一定是「原產地」)檢出的分支前:
git fetch remote-name
我得到了這個錯誤,當我做了git merge BRANCH_NAME "some commit message"
- 我忘了爲提交消息添加-m標誌,所以它認爲分支名稱包括評論。
如果包含引用的字符串是由其他Git命令(或任何其他shell命令)生成的,請確保它最後不包含回車。在將字符串傳遞給「git merge」之前,您必須將其去掉。
請注意,這是很明顯,當出現這種情況,是因爲在兩行的錯誤消息:
merge: 26d8e04b29925ea5b59cb50501ab5a14dd35f0f9
- not something we can merge
請在評價答案時提供評論。也許這不是原始海報的問題,但它可能是錯誤信息的原因(我自己有問題)。 – ocroquette
我有這個問題爲好。該分支看起來像'用戶名/主'這似乎混淆git,因爲它看起來像我定義的遠程地址。對我來說使用這個
git merge origin/username/master
工作得很好。
這對我有用。我把遠程名稱與分支名稱混淆了。 – Steve
我不得不在遠程分支的名稱前加'origin /'。 – AsGoodAsItGets
對於後人:就像AxeEffect說的...如果你沒有錯別字檢查你的本地分支名稱中是否有荒謬的字符,如逗號或撇號。剛纔那件事發生在我身上。
或下劃線。 +1 –
當從遠程上游拉動,git fetch --all
爲我做的伎倆:
git remote add upstream [url to the original repo]
git checkout [branch to be updated]
git fetch --all
git merge upstream/[branch to be updated]
在其他情況下,我找到了「不是我們可以合併」的錯誤也會發生如果遠程(原產地,上游)分支不存在。這可能看起來很明顯,但是你可能會發現自己在只有master
的回購協議上執行git merge origin/develop
。
我真的不知道爲什麼這個答案沒有獲得與上面一樣多的選票。 'git fetch -all'是在合併遠程分支之前通常沒有運行的命令,並且解決了我的問題。 –
因爲抓取不會自動拖動,所以您必須手動執行此操作。所以一對 - 所有和拉 - 所有將做的伎倆。 – danielpopa
謝謝! 'git remote add upstream'是我失蹤的重要事情,爲我解決了這個問題。我認爲一個常見的錯誤是假設一個分支自動知道它從哪裏分出來。 – Brent
我建議檢查您是否能夠切換到您嘗試合併的分支。
即使我想合併的分支位於本地存儲庫中,但沒有拼寫錯誤,我得到了此錯誤。
我忽略了我的本地更改,以便我可以切換到分支(存儲或提交也可以是首選)。在此之後,我切換回初始分支,合併成功。
我們得到了這個錯誤,因爲我們在分支名稱中有一個逗號(,)。我們刪除了本地分支,然後用一個沒有逗號的新名稱重新檢查它。我們能夠成功地合併它。
下劃線也似乎有問題。+1 –
我經常在分支名稱中使用下劃線@AndersLindén – nzaleski
我試過 git merge「Commit-message」,而不是 git merge -m「Commit-message」。
對我來說,問題發生時,我嘗試這樣做:
git merge -s ours --no-commit --allow-unrelated-histories <remote name>/develop
所以,其實我應該寫master
代替develop
,因爲主人子樹,不是我的實際分支的分支名。
添加新的遠程設備後,發生了這種情況 - 在合併遠程分支之前,我需要首先執行git fetch。 – Jason
從遠程獲取並檢出分支。 git fetch && git checkout分支名稱 –
發生在我身上的時候,當我被誤入錯誤的項目(即它是一個不同的回購,甚至沒有我想合併的分支) – JoelFan