Git分支操作

Git分支操作

分支的本质

分支的本质是指向commit的引用(指针)

  • 可通过git branch命令查看分支

创建分支

只创建分支,不切换过去

$ git branch <分支名> <所基于commit>
  • 不带<所基于commit>参数时默认从距当前最近的commit创建分支

创建分支的同时切换到新分支

$ git checkout -b <分支名>

切换分支

  • 切换分支前必须先git status保证工作区是干净的(先add,,commit)
$ git checkout <分支名>
  • 可用git log <分支名>查看该分支的log

合并分支

  • 先切换到主干分支,再吸收被合并吸收的分支
$ git checkout <主干分支>

$ git merge <被合并吸收的分支>

合并时有冲突的情况

例:初始a.txt中内容为:

hh

切换到bugfix分支并将a.txt内容改为:

hha

切换到master分支并将a.txt中内容改为:

hhh

合并有冲突的分支步骤如下:

  1. 用命令git merge <分支名>,令master分支吸收bugfix分支:

    $ git merge bugfix
    Auto-merging a.txt
    CONFLICT (content): Merge conflict in a.txt
    Automatic merge failed; fix conflicts and then commit the result.
    

    此时a.txt中变成:

    <<<<<<< HEAD
    hhh
    =======
    hha
    >>>>>>> bugfix
    
  2. 需手动编辑共同修改的文件,处理被

    <<<<< ...(主干分支)
    
    =====
    
    >>>>> ...(被吸收分支)
    

    包裹的内容

  3. 最后再将手动修改后的文件addcommit

  • 可用git log --graph命令直观地查看分支合并过程

删除分支

$ git branch -d <分支>
  • 删除分支不会删除其commit(删除指针不会删除指针所指对象)
posted @ 2020-03-26 10:59  ColaHua  阅读(186)  评论(0编辑  收藏  举报