【Git操作】分支branch操作
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操作相关推荐
- git分支(branch)操作相关命令
分支(branch)操作相关命令 查看本地分支:$ git branch 查看远程分支:$ git branch -r 创建本地分支:$ git branch [name] ----注意新分支创建后不 ...
- Git教程——分支 (branch)
文章目录 1.前言 2.分支图例 使用 graph查看分支 3.使用branch创建 dev 分支 1.前言 很多时候我们需要给自己或者客户用一个稳定的版本库, 然后同时还在开发另外一个升级版. 自然 ...
- Git学习--分支(branch、merge、rebase)
分支: 你可以把他理解为指针,假设一开始master和test分别是origin下的两个分支,都指向file这个文件夹,随后A,B分别使用master和test对file进行更新,他们更新的版本我们记 ...
- git合并分支相关操作
在开发过程中偶尔会遇到bug需要紧急修复,这时我们一般会新建一个单独分支专门用来修复bug,目的是不影响已有开发进度,这就涉及到新建分支.合并分支.打tag等操作,今天在这里给大家做一个简单分享- 1 ...
- git 删除分支相关操作
1.删除本地分支 $ git branch -d 分支名称 例如:删除本地a分支 2. 删除远程分支 $ git push origin -d 分支名称 例如:删除远程a分支 3.远程删除分支同步到 ...
- Git实战:branch分支操作详解
什么是分支 分支是指在主干道上分支的支线,可以前往不同的地方,也可以到达相同的终点(只是实现的路线不同).Git指向团队开发中的个体,各开发者可以有自己的分支,开发时不会影响其他分支的开发进度.分支完 ...
- git 切换分支_简单git操作
首先设置用户基本信息设置 设置用户名 git config - -global user.name 'Hazel6869' 设置用户名邮箱 git config - -global user.name ...
- git分支/标签操作
git分支类似于某一个模块,等到所有模块开发完毕时,最后聚合在一起形成一个项目.而分支之间一般是不会受影响的. git 分支的基本操作: git branch branchname 表示创建分支,新建 ...
- git id 切分支 按_Git分支本地操作详解
原文链接:http://www.jianshu.com/p/c05231e6a65a 引言 在上一节中我们对Git的常用本地操作的命令进行详解,而本节要讲解的是Git的分支, 在讲解之前补充两点概念性 ...
最新文章
- Web Service 的工作原理
- iOS10 推送通知 UserNotifications
- java异常分析;剖析printStackTrace和fillInStackTrace
- 和ISP合作需要了解什么?—Vecloud微云
- aop springboot 传入参数_Spring、SpringMVC和SpringBoot看这一篇就够了!
- aspectj表达式如何书写_化学平衡常数的表达式书写
- 前端学习(696):双重for循环
- c#+mysql图片存数据库_C#图片存入数据库及其读出显示
- php数组排序id取得,php专用数组排序类ArraySortUtil用法实例
- SpringMVC ------使用POJO对象绑定请求参数值
- PHP 5.3.0以上推荐使用mysqlnd驱动
- 1067. Sort with Swap(0,*) (25)
- 深度学习面试题常见问答
- 通过2048学习自定义view(一)
- 谷歌默认打开hao123
- linux字符驱动愚见
- 阿里巴巴客户体验事业群智能客服调度最佳实践
- c语言des算法实验报告,c语言实现des算法des加密算法实验报告
- 学生考试作弊行为视频实时检测系统源码
- 用不起!中国移动首个5G套餐确认,最低消费118元!
热门文章
- linux $ PATH=~/bin:$PATH这个命令是什么意思?
- 甲骨文公司高管以超1.38亿美元再次跻身最高薪酬高管之列
- 康熙字典收录多少汉字_康熙字典共收录了多少汉字?
- TFN DP16A 对数周期天线 100MHz~6GHz
- 第一章、安装、登录CentOS7
- 【Charles接口请求批量导出】
- 在线jsp版泰囧表情的生成器代码,不用PS也能恶搞。
- 如何使Maltab中用randi函数生成的随机数变成固定数
- Your “Flamingo“ is My “Bird”:Fine-Grained or Not
- shell中反引号、单引号、双引号的使用