zoukankan      html  css  js  c++  java
  • 版本控制git(三)-git分支

      通过本系列的上两篇文章(查看系列文章:http://www.cnblogs.com/jerehedu/p/4607599.html#bbkz),我们已经知道了如何使用Git完成对文件的版本控制。本次我们继续学习如何通过Git进行分支管理。

      首先,我们要弄明白什么是分支。通过git log 命令我们可以查看版本库的提交日志,如图:

      那么这些commit之间存在什么关系呢?实际上每次commit的时候,提交对象都会保存一个指向上次一commit版本的指针,经过多次提交之后,git通过这个指针将多个提交版本串成了一个串,如下图:

      分支实际上就是从某个提交版本向前的的历史,到目前为止Git中只有一个分支,这个分支我们称为主分支,默认名称为master。每提交一次,master就会向前移动一步,指向最新的提交版本。

    创建新的分支

      那么在Git中,我们如何创建新的分支呢,非常简单可以用使用Git命令:git branch 分支名字。

      这样我们就创建了一个名为:jredu_branch_01的分支,注意此分支是建立在当前的commit版本对象上的,如下图所示:

     

      现在我们有了两个分支,那么Git如何知道当前的工作分支呢?其实在Git中保存着一个名为HEAD的特别指针,这个指针指向了当前的工作分支。

    切换分支

      使用“git branch 分支名字”只是创建了一个分支,并不会切换到新建的分支中,如果想切换分支,我们应该使用命令:git checkout 分支名字

      切换后,HEAD就指向了Jredu_branch_01,示意图如下:

      我们在jredu_branch_01分支下进行工作,通过命令”git add”和”git commit”添加新的文件并提交后,新的分支示意图如下:

      从示意图可以看出新分支jredu_branch_01向前移动了一步,而主分支master还停留在原来的版本上。

    查看分支

      在Git中存在多个分支,如何查看并知道当前工作分支呢?查看命令:git branch

      可以看到共有两个分支master和jredu_branch_01,“*”表明了当前的工作分支。

    合并分支

      有了分支之后,我们就可以方便的进行协作开发,这样就可以能会产生多个分支,那么如何进行分支合并呢?Git提供的合并命令:git merge 被合并的分支

      具体步骤,首先返回master分支,其次运行合并命令:

      这样我们就将jredu_branch_01分支合并到了master分支之上。

    删除分支

      Jredu_branch_01分支被合并到master之后,就没有用处了,这里我们可以选择删除它,Git中删除分支的命令:git branch –d 要删除的分支

    合并冲突

      在合并分支的过程中,如果遇到不同的分支对相同的文件都做了修改,那么合并就不会那么顺利了,经常会看到如下的信息:

     

      这个时候git虽然做了合并,但是没有提交,需要解决冲突之后才能提交。通过git status命令我们可以看到冲突的文件

      打开冲突的文件,我们看到具体的文件内容

     

      文件中使用“=========”分割不同的分支文件修改中冲突的部分,“<<<<<<<<HEAD”部分是master分支修改的内容,”>>>>>>>>>>>jredu_branch_01”部分是分支jredu_branch_01分支修改的内容。

      修改文件后,使用git add命令,并使用git status查看冲突 状态,并最终提交。

     

      这样就解决了冲突的问题,完成了最终的合并。

      总结一下Git分支的相关命令

    创建分支:git branch 分支名字

    切换分支:git checkout 分支名字

    查看分支:git branch

    合并分支:git merge 要合并的分支

    删除分支:git branch –d 要删除分支

      疑问咨询或技术交流,请加入官方QQ群:JRedu技术交流 (452379712)

    作者:杰瑞教育
    出处:http://www.cnblogs.com/jerehedu/ 
    本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
     
  • 相关阅读:
    了解 NoSQL 的必读资料
    关于什么时候用assert(断言)的思考
    这次见到了一些大侠
    NetBeans 时事通讯(刊号 # 87 Jan 12, 2010)
    动态链接库dll,静态链接库lib, 导入库lib
    新女性十得 写得了代码,查得出异常
    记录系统乱谈
    新女性十得 写得了代码,查得出异常
    fullpage.js禁止滚动
    RunningMapReduceExampleTFIDF hadoopclusternet This document describes how to run the TFIDF MapReduce example against ascii books. This project is for those who wants to experiment hadoop as a skunkworks in a small cluster (110 nodes) Google Pro
  • 原文地址:https://www.cnblogs.com/jerehedu/p/4609657.html
Copyright © 2011-2022 走看看