• git使用教程12-创建分支,切换分支,删除分支


    前言

    如果本地有个分支不想要了,如何删除?远程仓库的分支不想要了,如何删除?
    git仓库经常会用到分支管理代码,本篇讲下git创建分支和删除分支相关的操作。

    git 创建分支

    git branch 可以查看当前的所有分支

    >git branch
    * master
    

    创建分支git branch 分支名称

    >git branch yoyo
    

    创建之后再次查看,就会多了个分支

    >git branch
    * master
      yoyo
    

    创建分支后,此时master分支前面有个星号,此时还在master分支上

    checkout 切换分支

    上面创建了分支,默认还是在master上,如果我们想切换到新的分支上,用git checkout 分支名称

    >git checkout yoyo
    A       .idea/vcs.xml
    Switched to branch 'yoyo'
    

    此时切换成功,可以通过git branch 查看

    >git branch
      master
    * yoyo
    

    查看当前分支状态也可以用git status

    >git status
    On branch yoyo
    

    创建分支的同时并切换分支

    >git checkout -b yoyo2
    A       .idea/vcs.xml
    Switched to a new branch 'yoyo2'
    

    相当于先创建分支,再切换分支

    git branch yoyo2
    git checkout yoyo2
    

    删除本地分支

    如果上面的某个分支不想要了,想删掉本地的分支,在删除分支的时候, 我们会使用git branch --delete 分支名称 来执行.
    --delete缩写就是-d,可以使用 git branch -d 分支名称来代替

    • -d 是--delete的缩写,在使用--delete删除分支时,该分支必须完全和它的上游分支merge完成,如果没有上游分支,必须要和HEAD完全merge
    • -D 是--delete --force的缩写,这样写可以在不检查merge状态的情况下删除分支
    • --force 简写-f,作用是将当前branch重置到初始点(startpoint),如果不使用--force的话,git分支无法修改一个已经存在的分支.

    在不检查merge状态的情况下删除分支,可以使用git branch -D 分支名称 ,它是git branch --delete --force 分支名称的缩写

    如果当前状态是在yoyo2分支上,直接删除yoyo2分支是不可以的

    >git branch
      master
      yoyo
    * yoyo2
    
    >git branch -D yoyo2
    error: Cannot delete branch 'yoyo2' checked out at 'D:/soft/git/web_git'
    

    必须先切换到其它分支上才能删除

    >git checkout master
    A       .idea/vcs.xml
    Switched to branch 'master'
    Your branch is up-to-date with 'origin/master'.
    
    >git branch -D yoyo2
    Deleted branch yoyo2 (was c613c75).
    
    >git branch
    * master
      yoyo
    

    删除远程分支

    如果我们想通过本地的命令行删除远程分支,需先建立本地分支和远程分支的关系。
    场景1: 本地新建一个分支,推送到远程分支,后面不想要这个本地分支和远程分支了

    先按前面的步骤创建本地分支并checkout到你要推送的分支上

    >git branch
    * master
      yoyo
    
    >git checkout yoyo
    A       .idea/vcs.xml
    Switched to branch 'yoyo'
    
    >git status
    On branch yoyo
    

    接着推送到远程分支上:git push origin 本地分支名称:远程分支名称,这样本地分支和远程分支就建立了关系

    >git push origin yoyo:yoyo
    

    接下来先删除本地分支,再删除远程分支

    >git checkout master
    A       .idea/vcs.xml
    Switched to branch 'master'
    Your branch is up-to-date with 'origin/master'.
    
    >git branch -D yoyo
    Deleted branch yoyo (was c613c75).
    
    >git push origin --delete yoyo
    
     - [deleted]         yoyo
    

    这样我们的本地分支和远程分支都删掉掉了

    场景2: 本地没这个分支,远程上有这个分支,想删掉远程的分支

    如果我本地有这个项目,我远程上有个 yoyoketang 的分支(本地没分支),可以先拉到我们的本地,建立关系

    >git checkout -b yoyoketang origin/yoyoketang
    fatal: Cannot update paths and switch to branch 'yoyoketang' at the same time.
    Did you intend to checkout 'origin/yoyoketang' which can not be resolved as commit?
    

    上面有个报错,可以执行git fetch更新下

    >git fetch
    remote: Enumerating objects: 15, done.
    remote: Counting objects: 100% (15/15), done.
    remote: Compressing objects: 100% (9/9), done.
    remote: Total 13 (delta 7), reused 10 (delta 4), pack-reused 0
    Unpacking objects: 100% (13/13), done.
    
       c613c75..f380d71  master     -> origin/master
     * [new branch]      yoyoketang -> origin/yoyoketang
    

    再执行git checkout -b 本地分支 origin/远程分支 就可以了

    >git checkout -b yoyoketang origin/yoyoketang
    A       .idea/vcs.xml
    Branch yoyoketang set up to track remote branch yoyoketang from origin.
    Switched to a new branch 'yoyoketang'
    >git branch
      master
    * yoyoketang
    

    同步到本地分支后,跟上面操作一样,先删除本地分支,再删除远程分支

    >git checkout master
    A       .idea/vcs.xml
    Switched to branch 'master'
    Your branch is behind 'origin/master' by 3 commits, and can be fast-forwarded.
      (use "git pull" to update your local branch)
    
    >git branch -D yoyoketang
    Deleted branch yoyoketang (was eaa102f).
    
    >git push origin --delete yoyoketang
    
     - [deleted]         yoyoketang
    
  • 相关阅读:
    【漏洞分析】DDOS攻防分析(二)——HTTP篇
    【漏洞分析】DDOS攻防分析(四)——TCP篇
    [spring]spring框架的编码过滤器的使用
    [struts]s:action 的使用方法
    [maven]使用maven构建Appfuse失败
    [网站安全]windows本地安全策略阻止指定ip访问本机
    [前端]quirks模式(怪异模式)
    [前端]客户端缓存
    [struts]在线编辑器的使用选择
    [eclipse]Myeclipse console 中乱码问题
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/14243600.html
Copyright © 2020-2023  润新知