zoukankan      html  css  js  c++  java
  • GIT分支,创建分支与合并分支的工作原理与教程

    开发一个版本,采用的发布流程:

    (1).从master的最新代码拉取一个开发分支,在上面进行开发

    (2).在开发分支上不断地进行提交版本,期间,master也会有因为其他版本上线而不停有版本合并

    (3).要发布的时候,把分支重新合到master分支

    1.什么是分支

    分支是一个commit对象链:一条工作记录线

    git每一次提交版本,都会在该版本上存一个字段parent,记录的是上一个提交的版本号,这样就可以从一个提交的快照里拿到之前所有提交过的记录

    2.新建分支是如何操作的

    先了解2个重要的概念——HEAD和master:HEAD指向的就是当前分支(某个时刻你所处的分支),master指向提交

    (1)创建分支之前,HEAD指向master

    (2)创建分支b1,HEAD指针指向b1

    与svn不同的是,svn创建分支会把全部内容拷贝一份,git创建分支只会创建一个指针

    3.实践

    (1) # 新建一个仓库用于测试

    git init 

    # 新建一个文件用于测试,并写入"第一次提交"

    vim test.txt

    # 提交修改到仓库

    git add . && git commit -m '第一次提交'

    # 修改文件test.txt,添加一行"第二次提交"

    vim test.txt

    # 第二次提交修改到仓库

    git add . && git commit -m '第二次提交'

    细心的朋友可能已经发现了,这两次提交我们都是在master(即主分支上)提交的,此时项目分支图如图所示

    (2) 我们创建一个分支b1,一个分支b2,并演示一下分支切换

    # 创建分支b1

    git branch b1

    # 切换到分支b1

    git checkout b1

    # 切换回主分支master,如图所示

    git checkout master

    # 创建并切换分支b2

    git checkout -b b2

    # 切换回主分支master,如图所示

    git checkout master

    创建分支后,此时项目分支图如图所示

    (3) 尝试一下在不同分支下工作

    在master进行工作

    # 在master新建一个master.txt文件

    touch master.txt

    # 提交一次

    git add . && git commit -m 'master上的第三次提交'

    # 查看当前文件内容

    ll

    (4) 切换到其他分支看看,可以发现其他分支下并没有master.txt文件,是不是很神奇

    # 切换到分支b1

    git checkout b1

    # 查看当前文件夹文件

    ll

    # 切换到分支b2

    git checkout b2

    # 查看当前文件夹文件

    ll

    (5) 分别在b1,b2工作

    # 切换到分支b1

    git checkout b1

    # 创建文件

    touch b1.txt

    # 提交到仓库

    git add . && git commit -m 'b1上的第三次提交'

    # 查看当前文件目录

    ll

    # 切换到分支b2

    git checkout b2

    # 创建文件

    touch b2.txt

    # 提交到仓库

    git add . && git commit -m 'b2上的第三次提交'

    # 查看当前文件目录

    ll

    此时项目分支图如图所示

    (6) 当发版时我们需要进行合并分支,现在我们把b2分支合并到master上

    # 切换到分支master

    git checkout master

    # 合并代码

    git merge b2

    是不是很方便,当你同一时间一个项目遇到多处修改使用git会有多舒服你用过才知道。此时项目分支图如图所示

    大功告成!

  • 相关阅读:
    Asp.Net MVC4入门指南(3):添加一个视图
    Asp.Net MVC4入门指南(2):添加一个控制器
    Asp.Net MVC4入门指南(1): 入门介绍
    .net平台借助第三方推送服务在推送Android,IOS消息(极光推送_V2版本)
    ASP.NET网站实现中英文转换(本地化资源)
    .net 内置对象之Session对象和Session的过期时间
    SQL 单表分页存储过程和单表多字段排序和任意字段分页存储过程
    Js键盘事件全面控制,回车按键事件,键盘对应按键码,按键事件兼容各个浏览器。
    C# WebBrowser控件详解
    html .net 网页,网站标题添图标
  • 原文地址:https://www.cnblogs.com/ZhengHengWU/p/12572994.html
Copyright © 2011-2022 走看看