警告消息:删除分支皮肤(是......)

时间:2013-07-28 00:10:54

标签: git

来自git branch的手册页:

  

删除分支。分支必须在其上游分支中完全合并,或者如果没有使用--track或--set-upstream设置上游,则必须在HEAD中合并。

$ git branch -d skin
warning: deleting branch 'skin' that has been merged to
     'refs/remotes/origin/skin', but not yet merged to HEAD.
Deleted branch skin (was 1f97b5b).

$ git remote -v
origin  git@github.com:me/Banana.git (fetch)
origin  git@github.com:me/Banana.git (push)
upstream    git@github.com:others/Banana.git (fetch)
upstream    git@github.com:others/Banana.git (push)

skin 分支实际上已被删除(本地),但我试图了解警告消息的含义。请注意, skin 分支仍可在 origin 上游中使用,如预期的那样。

1 个答案:

答案 0 :(得分:0)

警告意味着它所说的内容:您要求git删除的分支名称不是HEAD的祖先。无论你在哪个分支(例如,master),skin都命名了一个不是“分支”的提交。但是,名称skin是跟踪分支名称,它命名为“原始跟踪分支”的“提交”,因此git删除了分支标签。

用于指向提交1f97b5b的分支标签。 origin/skin 也可能指向(或指向)1f97b5b,即提交树看起来像这样:

A --- B --- C       <-- HEAD, master, origin/master
        \
          D --- E   <-- skin, origin/skin

其中提交E的SHA-1为1f97b5b。但skin可能是origin/skin之后的提交或更多,因此1f97b5b是提交D,或B,甚至是A的ID。重要的是从{开始{1}}可以在提交树中向后工作并找到提交origin/skin,因此git认为删除指向提交1f97b5b的标签是“安全的”。