1、简介

几乎每一种版本控制系统都以某种形式支持分支。使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作。有人把 Git 的分支模型称为必杀技特性,而正是因为它,将 Git 从版本控制系统家族里区分出来。(摘抄自菜鸟教程)

2、使用

(1)查看分支

查看本地分支:git branch
查看所有分支(含远端分支):git branch -a

(2)创建分支

创建一个空分支:git branch 分支名
从已有的本地分支创建新的本地分支(如从master分支),创建一个dev分支:git checkout -b dev
将远程git仓库里的指定分支拉取到本地(本地不存在的分支):git checkout -b 本地分支名 origin/远程分支名
这个将会自动创建一个新的本地分支,并与指定的远程分支关联起来。
例如远程仓库里有个分支dev2,我本地没有该分支,我要把dev2拉到我本地:

若成功,将会在本地创建新分支dev2,并自动切到dev2上。
如果出现提示:

fatal: Cannot update paths and switch to branch 'dev2' at the same time.
Did you intend to checkout 'origin/dev2' which can not be resolved as commit?

表示拉取不成功。我们需要先执行

git fetch

然后再执行

git checkout -b 本地分支名 origin/远程分支名

(3)拉取分支

拉取远端分支:git pull origin dev
拉取所有远端分支:git fetch
设置git push,pull默认的提交获取分支,这样就很方便的使用git push 提交信息或git pull获取信息
设置跟踪:git branch --set-upstream-to=origin/dev
取消对master的跟踪:git branch --unset-upstream master

(4)切换分支

查看本地分支:git checkout BranchName
查看所有分支(含远端分支):git checkout origin/BranchName

(5)跟踪分支

设置跟踪:git branch --set-upstream-to=origin/BranchName
取消对master的跟踪:git branch --unset-upstream master

(6)删除分支

删除本地分支:git branch -d BranchName
删除远端分支:git push --delete origin BranchName

(7)重命名分支

Step1、将本地分支oldbranch切一个分支到本地

 git branch -m oldbranch newbranch


Step2、删除远程分支

git push --delete origin oldbranch


Step3、将本地新分支推送到远程

git push origin newbranch

(8)合并分支

方式一:界面
Step1:发起合并请求

Step2:填写合并信息

Step3:同意合并请求并完成合并

方式二:命令行
一旦某分支有了独立内容,你终究会希望将它合并回到你的主分支。 你可以使用以下命令将任何分支合并到当前分支中去:

git merge
$ git branch
* masternewtest
$ ls
README        test.txt
$ git merge newtest
Updating 3e92c19..c1501a2
Fast-forwardrunoob.php | 0test.txt   | 1 -2 files changed, 1 deletion(-)create mode 100644 runoob.phpdelete mode 100644 test.txt
$ ls
README        runoob.php

以上实例中我们将 newtest 分支合并到主分支去,test.txt 文件被删除。

合并完后就可以删除分支:

$ git branch -d newtest

Deleted branch newtest (was c1501a2).
删除后, 就只剩下 master 分支了:

$ git branch
* master

(9)分支变基

当开发项目中存在一个主要开发分支时如develop,然后单独开发分支为dev1和dev2,要保证dev1始终处于从远端develop的最新的提交分岔出来的样子,具体操作步骤如下
git checkout dev1 (切换本地分支)
git fetch (拉取远端所有内容)
git stash (暂存本地当前内容)
git rebase origin/develop (变基、使得个人开发分支与主开发分支保持一致)
git stash pop (恢复本地当前内容)
之后可上传本地分支到远端分支

git add .
git commit
git push origin dev1 #有时可能需要加上强制推送的参数-f

(10)冲突解决

在合并分支或者分支变基的时候,若不同分支存在冲突之时,需要对比两分支的冲突点,选择某一分支或者重新编辑内容,可通过git diff来查看是否还存在冲突内容,若不存在,则可以通过命令git rebase --continue继续完成变基操作

【Git操作】分支branch操作相关推荐

  1. git分支(branch)操作相关命令

    分支(branch)操作相关命令 查看本地分支:$ git branch 查看远程分支:$ git branch -r 创建本地分支:$ git branch [name] ----注意新分支创建后不 ...

  2. Git教程——分支 (branch)

    文章目录 1.前言 2.分支图例 使用 graph查看分支 3.使用branch创建 dev 分支 1.前言 很多时候我们需要给自己或者客户用一个稳定的版本库, 然后同时还在开发另外一个升级版. 自然 ...

  3. Git学习--分支(branch、merge、rebase)

    分支: 你可以把他理解为指针,假设一开始master和test分别是origin下的两个分支,都指向file这个文件夹,随后A,B分别使用master和test对file进行更新,他们更新的版本我们记 ...

  4. git合并分支相关操作

    在开发过程中偶尔会遇到bug需要紧急修复,这时我们一般会新建一个单独分支专门用来修复bug,目的是不影响已有开发进度,这就涉及到新建分支.合并分支.打tag等操作,今天在这里给大家做一个简单分享- 1 ...

  5. git 删除分支相关操作

    1.删除本地分支 $ git branch -d 分支名称 例如:删除本地a分支 2. 删除远程分支 $ git push origin -d 分支名称 例如:删除远程a分支  3.远程删除分支同步到 ...

  6. Git实战:branch分支操作详解

    什么是分支 分支是指在主干道上分支的支线,可以前往不同的地方,也可以到达相同的终点(只是实现的路线不同).Git指向团队开发中的个体,各开发者可以有自己的分支,开发时不会影响其他分支的开发进度.分支完 ...

  7. git 切换分支_简单git操作

    首先设置用户基本信息设置 设置用户名 git config - -global user.name 'Hazel6869' 设置用户名邮箱 git config - -global user.name ...

  8. git分支/标签操作

    git分支类似于某一个模块,等到所有模块开发完毕时,最后聚合在一起形成一个项目.而分支之间一般是不会受影响的. git 分支的基本操作: git branch branchname 表示创建分支,新建 ...

  9. git id 切分支 按_Git分支本地操作详解

    原文链接:http://www.jianshu.com/p/c05231e6a65a 引言 在上一节中我们对Git的常用本地操作的命令进行详解,而本节要讲解的是Git的分支, 在讲解之前补充两点概念性 ...

最新文章

  1. Web Service 的工作原理
  2. iOS10 推送通知 UserNotifications
  3. java异常分析;剖析printStackTrace和fillInStackTrace
  4. 和ISP合作需要了解什么?—Vecloud微云
  5. aop springboot 传入参数_Spring、SpringMVC和SpringBoot看这一篇就够了!
  6. aspectj表达式如何书写_化学平衡常数的表达式书写
  7. 前端学习(696):双重for循环
  8. c#+mysql图片存数据库_C#图片存入数据库及其读出显示
  9. php数组排序id取得,php专用数组排序类ArraySortUtil用法实例
  10. SpringMVC ------使用POJO对象绑定请求参数值
  11. PHP 5.3.0以上推荐使用mysqlnd驱动
  12. 1067. Sort with Swap(0,*) (25)
  13. 深度学习面试题常见问答
  14. 通过2048学习自定义view(一)
  15. 谷歌默认打开hao123
  16. linux字符驱动愚见
  17. 阿里巴巴客户体验事业群智能客服调度最佳实践
  18. c语言des算法实验报告,c语言实现des算法des加密算法实验报告
  19. 学生考试作弊行为视频实时检测系统源码
  20. 用不起!中国移动首个5G套餐确认,最低消费118元!

热门文章

  1. linux $ PATH=~/bin:$PATH这个命令是什么意思?
  2. 甲骨文公司高管以超1.38亿美元再次跻身最高薪酬高管之列
  3. 康熙字典收录多少汉字_康熙字典共收录了多少汉字?
  4. TFN DP16A 对数周期天线 100MHz~6GHz
  5. 第一章、安装、登录CentOS7
  6. 【Charles接口请求批量导出】
  7. 在线jsp版泰囧表情的生成器代码,不用PS也能恶搞。
  8. 如何使Maltab中用randi函数生成的随机数变成固定数
  9. Your “Flamingo“ is My “Bird”:Fine-Grained or Not
  10. shell中反引号、单引号、双引号的使用