我正在尝试通过删除我不再需要的分支来整理我的本地存储库。
我首先在 GitLab 中列出我合并的合并请求。然后我显示了第一个,获取了它的分支名称,并尝试在我的本地存储库中删除该分支。
首先,自动完成不起作用。我输入了整个分行名称...
$ git branch -d <branchname>
...并收到消息:
error: the branch '<branchname>' is not fully merged.
If you are sure... run 'git branch -D <branchname>'.
嗯,我想我确定。但是如果 GitLab 说分支已合并,为什么 Git 说没有合并呢?
可能有一些漂亮的 Git 命令可以一次性删除所有合并的分支,但只要 Git 认为分支尚未合并,那么它就不会起作用!
首次运行
git fetch --all
,此命令将使用来自远程的所有信息更新本地存储库。
之后,如果您要将所有代码合并到一个分支,您可以通过键入
git switch <branch_name>
切换到该分支,并通过键入 git branch --merged
检查合并了哪些分支,然后继续使用您编写的命令删除它们。
如果您要合并到多个分支,您可以继续并尝试删除所需的分支。您还可以一一切换到所有这些分支,并检查哪些分支已合并到其中,如上段所述。