zoukankan      html  css  js  c++  java
  • git分支的创建与合并

    在git中提倡使用分支,这就涉及到了分支的创建和合并。在git中我们的每次提交类似于一个链表,按照时间顺序向下排列,大约画了一个图,每个小圆圈代表一次提交,在git中有有一个主分支master,我们新建的分支最后都要合并到主分支上。


    参考了廖雪峰的文章,这里讲 到了一个head(这里就当作他是一个指针,没有认真探讨过这个问题),用head来确定当前分支,比如在master分支(主分支),head指向了最后一次提交,代表当前是在master分支上完成的操作。同样是上面的图加上一个head指向代表当前正在master分支上操作。


    如果在master上操作,我们每次的提交都会导致这条分支在一点一点增长。为了避免每次操作主分支错误的代码提交导致的错误,我们需要再创建一个分支,先在这个新建的分支上提交,最后合并到主分支(master)上。

    创建一个test分支,并把当前操作的分支切换到这个新建的test分支上,head指向的是test这条分支


    创建test分支、切换到test分支

    git branch test
    git checkout test
    
    上面的两条语句可以用一句来完成,在checkout后面加上-b就可以

    git checkout -b test
    
    可以查看当前分支情况(有哪些分支,当前操作的分支)

    git branch
    可以看到当前有两条分支,当前指向test分支(绿色前面有*)


    接下来就可以对文件进行操作,直接把编辑好的文件复制过来

    利用命令把文件添加到暂存区,比如我们添加了一个b.txt文件

    git add a.txt

    也可以在add后面写上.添加所有文件

    git add .
    如果发现提交暂存的文件有问题,是可以撤销的,查看做出什么修改,并撤销修改

    git status
    git reset head <文件名字>
    在执行git status时就已经告诉我们撤销应该怎么做


    文件加到暂存区之后,我们需要提交

    git commit -m "提交说明"
    提交b.txt作为测试



    注意以上的操作都是在test分支上进行的,这张图准确来说放在这里最合适,因为在test分支上完成了一次提交,上面只是创建一个分支并切换到test上


    接下来我们应该把test分支上提交的内容合并到主分支master上,在此之前我们先要切换到主分支上,否则是不能执行合并

    git checkout master
    
    切换到master分支上查看文件发现刚刚添加的b.txt文件不存在,因为b.txt是在test分支上添加的。

    执行合并命令,合并的是test分支,最后的参数是要合并分支的名字

    git merge test
    这里在git中查看文件列表可以使用windows中的dir命令,也可以使用linux中的ls命令,网上给出的解释是git for window提供了一个环境,而git正常运行就是要依赖这个环境


    这里看图比较容易理解,下面的那条是test分支,上面的是master分支



    如果没有删除test分支test分支可以继续向后延伸,也就是可以继续在test分支上提交,每次的合并都是把test分支上的内容合并到master(主分支上),如下图:


    也可以选择删除test分支,在删除之后还是可以创建名为test的分支

    git branch -d test

    查看分支,可以看到只剩下master分支




  • 相关阅读:
    VS 2017 没有工具栏中没有Report Viewer的解决方案
    数据类型和C#关系对应
    .NET CORE部署各种问题
    .NET CORE AutoMapper使用
    .NET CORE 配置Swagger文档
    window快捷登陆linux的的设置方式(设置ssh的config配置)
    linux安装mongodb并启动
    windows更改DNS设置
    scp的使用
    浏览器缓存机制
  • 原文地址:https://www.cnblogs.com/duzhentong/p/8576499.html
Copyright © 2011-2022 走看看