下面是我从主分支中使用的命令

git branch experiment
git checkout experiment

然后我对我的文件做了一些更改,提交这些更改,并将新的分支推送到GitHub。

git commit . -m 'changed files'
git push -u origin experiment

后来,我决定将我的实验分支合并到主分支中。

git checkout master
git merge experiment

最后,我把这些改动推到了GitHub上。

git push -u origin master

一切都很顺利,直到我试图删除我的实验分支使用

git branch -d experiment

我得到了错误信息:

错误:分支'experiment'没有完全合并。 如果你确定要删除它,运行'git branch -D experiment'。

我对git有点陌生,我不知道我还能合并多少两个分支。我错过了什么?


当前回答

我的本地git上没有上游分支。我已经从master创建了一个本地分支,git checkout -b mybranch。我在上游git上用bitbucket GUI创建了一个分支,并将我的本地分支(mybranch)推到该上游分支。一旦我在我的本地git上进行了git取回来检索上游分支,我可以做一个git分支-d mybranch。

其他回答

我的本地git上没有上游分支。我已经从master创建了一个本地分支,git checkout -b mybranch。我在上游git上用bitbucket GUI创建了一个分支,并将我的本地分支(mybranch)推到该上游分支。一旦我在我的本地git上进行了git取回来检索上游分支,我可以做一个git分支-d mybranch。

我试了她的答案,但没有成功。

要查找未合并的提交,只需使用:

git log feature-branch ^master --no-merges

正如Drew Taylor指出的那样,使用-d删除分支只考虑当前的HEAD来确定分支是否“完全合并”。即使分支与其他分支合并,它也会报错。在这方面,错误信息绝对可以更清楚…… 你可以在删除之前签出合并的分支,或者只是使用git branch -D。大写的-D将完全覆盖支票。

有解释的最简单解决方案(重复检查解决方案)(之前遇到过这个问题)

问题是:

1-我不能删除分支

2-终端保持显示一个警告消息,有一些提交还没有被批准

3-知道我检查了主和分支,他们是相同的(最新)

解决方案:

git checkout master
git merge branch_name
git checkout branch_name
git push
git checkout master
git branch -d branch_name

解释:

当你的分支连接到上游的远程分支(在Github, bitbucket或其他平台上)时,你需要将它合并(推送)到主平台,你需要将新的更改(提交)从分支推送到远程repo (Github, bitbucket或其他平台),

我在我的代码中所做的是,我切换到master,然后将分支合并到它(以确保它们在你的本地机器上是相同的),然后我再次切换到分支,并使用“git push”将更新或更改推到远程在线回购。

之后,我再次切换到master,尝试删除分支,问题(警告消息)消失,分支删除成功

我相信旗力才是你真正想要的。使用git branch -d——force <branch_name>强制删除分支即可。