Git — 创建与合并分支

分支概念分析

master 分支(主分支),是每次提交串成的时间线。

HEAD 严格来说不是指提交,而是指向 mastermaster 才是指向提交的。HEAD 指向的就是当前分支。

分支流程:

  • 开始时:master 分支是一条线,Git 用 master 指向最新的提交,再用 HEAD 指向 master,就能确定当前分支,以及当前分支的提交点:
    在这里插入图片描述
  • 原分支提交:master 分支都会向前移动一步;master 分支线会随提交不断变长。
  • 创建新的分支:例如 dev 时,Git 创建了一个 dev 的指针;指向 master 相同的提交,再把 HEAD 指向 dev,就表示当前分支在 dev 上:
    在这里插入图片描述
  • 新分支提交:此时对工作区的修改和提交就是针对 dev 分支,dev 指针往前移动一步,而 master 指针不变:
    在这里插入图片描述
  • 合并分支:完成在 dev 上的工作完成,可以把 dev 合并到 master 上。直接将 master 指向 dev 的当前提交,就完成了合并:
    在这里插入图片描述
  • 合并完成分支后:可以删除 dev 分支:
    在这里插入图片描述

特点:

  • Git 创建分支快:除了增加一个 dev 指针,改变 HEAD 的指针,工作区的文件不会有任何变化。
  • Git 合并分支快:修改指针,工作区内容不变。
分支相关命令
  • 创建分支:执行 git checkout -b dev 命令创建分支:

    $ git checkout -b dev
    Switched to a new branch 'dev'
    

    git checkout 命令加上 -b 参数表示创建并切换,相当于以下两条命令:

    $ git branch dev
    $ git checkout dev
    Switched to branch 'dev'
    
  • 查看分支:执行 git branch 命令查看当前分支;
    git branch 命令会列出所有分支,当前分支前面会标一个 * 号:

    $ git branch
    * dev
      master
    
  • 提交分支:执行 git addgit commit 命令提交分支:
    readme.txt 修改:

    Creating a new branch is quick.
    

    提交:

    $ git add readme.txt 
    $ git commit -m "branch test"
    [dev b17d20e] branch test
     1 file changed, 1 insertion(+)
    
  • 合并分支:执行 git merge dev 命令合并分支:
    dev 分支的工作完成,可以切换回 master 分支:

    $ git checkout master
    Switched to branch 'master'
    

    此时修改内容在 dev 分支上,master 的内容没有改变,接下来就是把 dev 修改的内容合并到 master 上;Fast-forward 说明此次合并是 “快进模式”:

    $ git merge dev
    Updating d46f35e..b17d20e
    Fast-forward
     readme.txt | 1 +
     1 file changed, 1 insertion(+)
    
  • 删除分支:执行 git branch -d dev 删除分支:

    $ git branch -d dev
    Deleted branch dev (was b17d20e).
    
switch

因为 git checkout < branch > 切换分支命令与 git checkout – < files > 撤销修改命令容易混淆。

新版本 Git 提供 git switch 命令来处理分支:

  • 创建并切换到新的 dev 分支:

    $ git switch -c dev
    
  • 直接切换到已有的 master 分支:

    $ git switch master
    

总结一下:

  • 查看分支:git branch
  • 创建分支:git branch < name >
  • 切换分支:git checkout < name > 或 git switch < name >
  • 创建 + 切换:git checkout -b < name > 或 git switch -c < name >
  • 合并某分支到当前分支:git merge < name >
  • 删除分支:git branch -d < name >
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值