• luoChao
    2018-12-14
    git branch -d branch_name:使用-d 在删除前Git会判断在该分支上开发的功能是否被merge的其它分支。如果没有,不能删除。如果merge到其它分支,但之后又在其上做了开发,使用-d还是不能删除。-D会强制删除。老师能加一讲课来讲讲merge和rebase的区别吗。

    作者回复: 这个github协作中一定加上。

    
     8
  • 小美
    2018-12-14
    老师为什么 -d 会提示,麻烦解释下原理吗

    作者回复: 小美,先给你👍。很擅长思考。

    用-d 报“error:The branch is not fully merged”,是指这个分支不曾合入到其他任何分支。在日常开发中,我们通常赋予有意义的分支名,Git判断本分支没和任何别的分支合并,意味这删除存在风险。它也提供我们-D的方式,如果确定无风险就用-D 。

    
     5
  • 楚耳
    2018-12-24
    老师,大部分情况下我们是团队开发,在团队协同开发和产品上线中经常会代码回滚,能多讲讲团队中代码回滚这块嘛

    作者回复: 据团队说还会安排直播课,到时我把回滚的材料分享给大家吧

    
     3
  • 春明
    2019-02-21
    老师,not fully merged是啥意思

    作者回复: 就是没有合入到其他分支

    
     1
  • 虢國技醬
    2018-12-16
    打卡
    -d -D 基础删除操作

    作者回复: 👍

    
     1
  • cylim
    2018-12-14
    -d 是删除, -D 是强制删除。

    作者回复: 嗯,对的

    
     1
  • 风轻扬
    2019-10-14
    老师,你删除的是远程分支,本地分支不需要删除吗?

    作者回复: 好问题,本地分支结合自己的情况再决定是否删除好了。git branch -d 被删除分支名

    
    
  • 钱洋彪
    2019-10-13
    从官网文档上了解-d的话必须已经将分支完全合并到其上游分支或者HEAD中,否则不能成功。分支比较好理解,HEAD的场景工作中比较少遇到,比较不容易理解,所以我还特意在本地做了一个实验,实验前置条件:从master分支创建了一个新分支test,并在test产生一个commit,然后切回master分支,此时test是领先master一个commit的。
    按照理解test直接用-d是删不掉的,那如何调整HEAD呢?利用前面学习的分离头指针!直接使用`git checkout 'test的commitID'`,这个时候`git log --all --graph`可以看到HEAD和test在同一个commit上,此时再次使用`git branch -d test`,奇迹发生了,成功删除了test分支。
    
    
  • 陈毓飞
    2019-10-13
    老师,删除分支会删除对应的commit吗?

    作者回复: 如果commit 不在其他分支上,我们删除了这些commit的分支的话,git在清理垃圾的时候会彻底清理掉这些commit。

    
    
  • 林西
    2019-07-07
    想要恢复被删除的分支呢?

    作者回复:
    好问题,可参考:
    https://stackoverflow.com/questions/3640764/can-i-recover-a-branch-after-its-deletion-in-git

    可以再了解一下 git reflog 这个命令的作用。


    
    
  • blueguitar
    2019-06-04
    老师,如果这个分支,已经merge过了,就不会报错了喽

    作者回复: 应该是merge到缺省分支,执行 branch -d就不报错了。如果merge到非缺省分支,还是要报错的。

    
    
  • 姜文
    2019-02-13
    原来不能删除当前的分支
    
    
我们在线,来聊聊吧