git - 为什么 git branch -D 不删除本地分支
问题描述
$ git checkout -B test
$ # change anything
$ git branch
$ master
$ * test
$ git commit -am 'updated'
$ git checkout master
$ git branch
$ * master
$ test
$ git branch -D test
$ git branch
$ * master
$ git checkout test
$ git branch
$ master
$ * test
为什么没有错误?类似错误:pathspec 'test' 与 git 已知的任何文件都不匹配
解决方案
从
$ git branch -D test
$ git branch
$ * master
我们可以看到分支被删除了。下一条命令
$ git checkout test
从远程跟踪 ref重新创建分支origin/test
。请参阅以下文档git checkout
:
如果
<branch>
未找到,但在一个远程(调用它)中确实存在一个<remote>
具有匹配名称的跟踪分支,则视为等同于$ git checkout -b <分支> --track <远程>/<分支>
推荐阅读
- opencv - 没有规则使目标'-L/usr/local/lib'
- linux-kernel - 内核缓冲区和缓存使用 RAM 时使用的 Linux SWAP 内存
- sql - 必须使数据库中的所有现有 GUID 再次唯一。是否有数学运算可以做到这一点?
- javascript - 使用javascript拖放在两个div元素之间插入占位符
- android - Delphi Android:无法捕获鼠标滚轮事件
- google-cloud-pubsub - GMB API - 通知的有效负载模式(发布/订阅)
- python - 通过清除以前的图像上传图像
- python - 比较两个数据框并根据标准选择一个
- java-8 - Java:为方法设置泛型参数
- sas - 在 SAS Enterprise Guide 上导入文件