只是想更好地理解删除本地分支后的警告消息
警告: 删除已合并到的分支 'old_branch' 'refs/remotes/origin/old_branch',但尚未合并到 HEAD。
'old_branch'
'refs/remotes/origin/old_branch'
HEAD
假设您当前已经签出了 master,这意味着在 old_branch中所做的更改不存在于 master中。然而,它们 是存在于 origin上的 old_branch中。
master
old_branch
origin
这只是警告您,您已经将更改推送到 origin上的分支,但是它们没有合并到当前签出的分支中,因此您只是在本地删除它。
它警告您,您不再拥有该分支的本地副本,但它存在于 origin中
如果还要删除远程分支,请使用 git push --delete origin old_branch
git push --delete origin old_branch
为了补充其他答案,这也可能意味着更改可能被合并到 master,只是您的 master 的本地副本尚未反映它。无论哪种方式,这只是通知您,您的主服务器的本地副本没有您在原始服务器上推动的更改。合并/不合并... 也许是,也许不是
这意味着您的本地分支 old_branch与远程 origin上的远程分支 old_branch是最新的,但是它没有合并到被认为是回购中的主要分支的分支 master。
这只是对 Git 的预防措施。它给您一个提示: 也许您在主题分支中完成了工作,但是忘记将其合并到主分支中了?
更新
Git 警告您不要丢失您的更改。例如,如果你没有你的 old_branch对主 git,然后不允许你甚至删除分支是未合并到主(好,它允许,但与关键字 -D是 force-delete选项)。
-D
force-delete
这里有几个答案是完全正确的,但似乎没有完全澄清这个问题。所以我会再试一次。
在执行 拉请求并通过完成 PR 自动删除 GitHub/Bitbucket/等上的一个分支之后,在本地删除分支时会看到这个错误: warning: deleting branch 'old_branch' that has been merged to 'refs/remotes/origin/old_branch', but not yet merged to HEAD.
warning: deleting branch 'old_branch' that has been merged to 'refs/remotes/origin/old_branch', but not yet merged to HEAD.
GitHub 或任何远程存储库都不知道计算机的本地状态。
当拉请求完成并且它提供删除原始 PR 分支时,它不知道您的本地分支。
此时,删除本地分支。 当地的回收/计算机知道这个时间线:
myfeature
origin/myfeature
当然,这是不正确的,因为 origin/myfeature分支被摧毁时,PR 完成,但您的本地计算机不知道这一点。所以 Git 给了你一个警告。
因为
删除远程分支
范例是如此普遍,如果远程分支以某种方式通知本地分支这种情况就好了。但是 Git 在 只请求信息,但绝不发送未请求的信息的“单向通信”方面做得非常好。在一个领域的“双向”交流可能会让人们在其他领域也想要它,不久我们就会回到 Git,看起来更像 SVN 或其他“中央存储库”范例,这些范例太脆弱而不能成功。比我懂得更多的人可能会更好地阐述这种“双向沟通”会导致的所有问题。