zoukankan      html  css  js  c++  java
  • [置顶] 【Git入门之八】分支管理

    原创作品,转载请标明:http://blog.csdn.net/jackystudio/article/details/12309385


    1.分支又是神马?

    我为什么说又是。。。

    分支就是一个我们能通过它创建出独立代码副本的东东。建立一个git仓库时,它会默认帮我们创建一个主分支,叫做master,之前所有的介绍我们都是在mater上面进行操作的。

    这是一个最简单的分支模型,本文也基于此模型。每个点代表一个版本,master代表默认主分支,而branch代表新建的分支,HEAD可以认为是一个移动的指针,它指向谁,谁就是当前版本。


    2.显示分支

    通过《git branch》可以显示分支,前面带*号的表示当前所在的分支。

     

    [cpp]  view plain copy
     
    1. #显示分支  
    2. $ git branch  
    3. * master  

    3.创建分支

     

    通过《git brach 分支名》可以创建一个新的分支。

     

    [cpp]  view plain copy
     
    1. #创建分支br  
    2. $ git branch br  

    4.切换分支

     

     

    [cpp]  view plain copy
     
    1. #切换到br分支  
    2. $ git checkout br  
    3. Switched to branch 'br'  

    5.修改分支内容并提交

     

     

    [cpp]  view plain copy
     
    1. #修改br分支中的Jackydata01  
    2. $ echo "Im in br now" > Jackydata01  
    3.   
    4. #提交br分支中的修改  
    5. $ git commit -a -m "modify in br"  
    6. [br 9ad62b7] modify in br  
    7.  1 file changed, 1 insertion(+), 1 deletion(-)  
    8.   
    9. #显示br中Jackydata01内容,成功修改  
    10. $ cat jackydata01  
    11. Im in br now  

    6.返回主分支,确认修改

     

    发现主分支master的内容并无修改,在分支中修改提交内容并不会影响其他分支。

     

    [cpp]  view plain copy
     
    1. #切换到master  
    2. $ git checkout master  
    3. Switched to branch 'master'  
    4.   
    5. #显示br中Jackydata01内容,无修改  
    6. $ cat jackydata01  
    7. Hi Jackygit2  

     


    7.推送分支到远程仓库

    默认情况下,git只会推送已匹配的分支,所以如果新建分支,需要手动推送到远程仓库。我们这里推送到github。

     

    [cpp]  view plain copy
     
    1. #推送br到github的br上,如果不存在则新建,存在则更新  
    2. $ git push git_github br:br  
    3. Counting objects: 5, done.  
    4. Delta compression using up to 2 threads.  
    5. Compressing objects: 100% (2/2), done.  
    6. Writing objects: 100% (3/3), 265 bytes | 0 bytes/s, done.  
    7. Total 3 (delta 1), reused 0 (delta 0)  
    8. To git@github.com:fusijie/JackyGit.git  
    9.  * [new branch]      br -> br  

     

    一旦这个分支被推送到远程仓库,那以后直接《git push 目标》就可以把所有分支都推送上去了。 

    8.本地合并分支

    使用git merge 分支名来合并分支,不过前提是要先切换到master上,如果在br上合并是没用的。

     

    [cpp]  view plain copy
     
    1. #合并br到主分支上  
    2. $ git merge br  
    3. Updating 6937dbd..9ad62b7  
    4. Fast-forward  
    5.  Jackydata01 | 2 +-  
    6.  1 file changed, 1 insertion(+), 1 deletion(-)  

     


    9.合并本地分支到远程分支

    合并本地的br分支到远程仓库的master分支。

     

    [cpp]  view plain copy
     
    1. #把本地的br分支合并到远程仓库的master中  
    2. $ git push git_github br:master  
    3. Total 0 (delta 0), reused 0 (delta 0)  
    4. To git@github.com:fusijie/JackyGit.git  
    5.    61a92ec..be39e3f  br -> master  

     


    10.删除分支

    删除分支使用《git branch -d 分支名》来删除,如果分支被修改提交过但是没有被合并,那需要使用《git branch -D 分支名》来删除。

     

    [cpp]  view plain copy
     
    1. #删除br分支  
    2. $ git branch -d br  
    3. Deleted branch br (was 9ad62b7).  
    4.   
    5. #确认当前分支  
    6. $ git branch  
    7. * master  

     

    11.删除远程分支

     

    [cpp]  view plain copy
     
    1. #删除远程br分支  
    2. $ git push git_github :br  
    3. To git@github.com:fusijie/JackyGit.git  
    4.  - [deleted]         br  

    12.显示远程分支

     

    可以使用-a显示所有分支或-r参数来显示远程分支

     

    [cpp]  view plain copy
     
    1. #显示远程分支  
    2. $ git branch -a  
    3. * master  
    4.   remotes/git_github/master  
    5.   testremote/maste  

    13.克隆远程分支到本地

     

    《git checkout -b 分支名》表示本地创建分支并切换到该分支。

     

    [cpp]  view plain copy
     
    1. $在本地新建br分支,并把远程分支br克隆到本地br  
    2. $ git checkout -b br git_github/br  
    3. Branch br set up to track remote branch br from git_github.  
    4. Switched to a new branch 'br'  
  • 相关阅读:
    SDUT 2143 图结构练习——最短路径 SPFA模板,方便以后用。。 Anti
    SDUT ACM 1002 Biorhythms 中国剩余定理 Anti
    nyist OJ 119 士兵杀敌(三) RMQ问题 Anti
    SDUT ACM 2157 Greatest Number Anti
    SDUT ACM 2622 最短路径 二维SPFA启蒙题。。 Anti
    二叉索引树 区间信息的维护与查询 Anti
    SDUT ACM 2600 子节点计数 Anti
    UVA 1428 Ping pong 二叉索引树标准用法 Anti
    2010圣诞Google首页效果
    Object
  • 原文地址:https://www.cnblogs.com/keanuyaoo/p/3353229.html
Copyright © 2011-2022 走看看