我需要合并两个分支--将second
合并到first
,然后摆脱second
。这是我所做的:
git clone
项目以获取新副本git checkout --track origin/second
,进行了一些更改,并提交git checkout --track origin/first
,进行了一些更改,并提交git merge second
(git说"merge made by recursive")git branch -d second
然后Git说:
$ git branch -d second
warning: not deleting branch 'second' that is not yet merged to
'refs/remotes/origin/second', even though it is merged to HEAD.
error: The branch 'second' is not fully merged.
If you are sure you want to delete it, run 'git branch -D second'.
为什么会出现这种情况?我以前合并分支从来没有遇到过这个消息。合并进程很顺利,没有冲突。如何安全地删除second
分支?
git checkout second
然后git push origin second
可以让 git 不再抱怨,但我不明白为什么。 - Matt Fenwicksecond
之前没有将其推送到远程仓库,导致 git 报错?同时确保你不处于“分离 HEAD”状态。 - knittlsecond
是origin/second
的跟踪分支,因此它想知道对second
所做的更改是否已推送到origin
。如果不是跟踪分支,我认为它不会对此表示抱怨。second
已经在本地合并到first
似乎对于git
而言并不重要,尽管看起来你可能可以证明,由于它至少已经被合并到其他分支,删除该分支应该是可以接受的。 - twalberg