2012-08-27 51 views
43

只是想更好地瞭解相關的警告消息後,我刪除了本地分支的Git分支-d在警告

警告:刪除分支'old_branch'已合併 'refs/remotes/origin/old_branch',但尚未合併HEAD

+5

如果合併--squash your old_branch,您將在本地刪除時始終得到此警告。當擠壓你的索引重置,因此不符合old_branch HEAD –

回答

19

假設您目前有master簽出,這意味着在old_branch所做的更改不存在於master。然而,他們存在於old_branchorigin

+1

是的。這是正確的答案! 「但還沒有合併到」HEAD「中,這裏的HEAD引用本地主分支的HEAD。 – Devy

+0

但是origin/old_branch被合併到origin/master中。後來我在master分支上做了git pull origin。同樣的錯誤。 GH中沒有這個錯誤嗎? – vikramvi

33

這只是警告你,你有更改推送到分支origin,但它們不合併到master,所以你只是在本地刪除它。

,是警告你,你不再有分支的本地副本,但它存在於origin

如果要刪除遠程分支以及使用git push --delete origin old_branch

+2

是的,'主人'不參與這個。你的意思是當前的分支,而是。 ';)' – fernandoespinosa

+1

即使我做了一個'git branch -d branch_name'這個警告,我應該只在本地刪除這個分支。爲什麼在這種情況下需要警告? –

+0

但是origin/old_branch被合併到origin/master。後來我在master分支上做了git pull origin。同樣的錯誤。 GH中沒有這個錯誤嗎? – vikramvi

2

爲了增加其他答案,這也可能意味着變更可能會合併到主,只是您的本地副本並沒有反映它。無論哪種方式,這只是告訴你,你的主人的本地副本沒有你原來推動的變化。合併/未合併......也許,也許不是

2

這意味着你的本地分支old_branch是最新的遠程分支old_branch遠程origin但不合並被認爲是主分支的分支master回購。

這只是從git的預防措施。它給了你一個提示:也許你在主題分支中完成了你的工作,並忘記將它合併到主分支?


更新

的Git警告您失去更改。例如,如果你在主git上沒有你的old_branch,那麼不允許你甚至刪除沒有併入主分支的分支(它允許,但是鍵-D這是force-delete選項)。

+5

不一定'master',但是當前'HEAD'。 –

+0

所以-​​D是當你沒有共享被任何遠程分支被刪除的分支(實際上是提交)。雖然警告是通知您您已將分支(提交)與遠程設備共享,但它並未合併到HEAD中。HEAD是HEAD,遠程/ refs/HEAD是不一樣的。但如果我對遠程HEAD和本地HEAD之間的區別有誤,請糾正我。 – Eric