我需要将两个分支 - second
合并到first
中,然后摆脱second
。这是我做的:
git clone
d项目获取新副本git checkout --track origin/second
,进行了一些更改并提交了git checkout --track origin/first
,进行了一些更改并提交了git merge second
(git说“通过递归合并”)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
分支?
答案 0 :(得分:36)
根据我的实验以及@ knittl和@ twalberg的评论,似乎git只是希望我在删除之前将我的更改推送到second
分支。
我做了:
$ git checkout second
$ git push origin second
$ git checkout first
$ git branch -d second
没有任何警告。
答案 1 :(得分:0)
两行
git push -u origin second
git branch -d second
答案 2 :(得分:0)
基本上,本地“ second”分支不与远程“ second”分支同步,并且git不想让您丢失任何工作。
在这种情况下,由于更新已经合并到“ HEAD”中,因此不确定更新是否会丢失。如果将“ HEAD”分支推送到远程,则应该没有问题。但是,如果“ HEAD”出了点问题,您仍然有机会失去工作
最后,这只是一项额外保证,请随时强行删除。
答案 3 :(得分:0)
我认为这实际上是在您合并了远程分支(即通过Pull Request
)并删除了远程分支后发生的。
在我的实验中不删除远程分支并在本地使用-d
FIRST 是解决方案。