使用git新建分支以及管理分支
在进行分支相关的操作前, 我们需要保持主分支干净, 所谓的干净就是没有任何改变(所有更改都已经commit 并 push),那么你可以在任何时候从你的主分支创建一个新分支。
为了方便代码管理,我们应该始终保持主干分支干净,为了其他新增需求或差异版本去创建相应分支。 如果主干分支上有问题要修改,我们最好不要在主干分支上直接修改,而是为了修改这个问题
专门去创建一个分支,当问题修改测试完成稳定后,把这个分支合入到主干分支,完了可以删除掉这个分支(当然,根据实际情况也可以保留)。然后主干上的这个修改就可以通过合并,同步到其他的分支上去。
查看分支:
查看所有已存在的分支,你可以使用: git branch
例如:未拉分支之前,我们查看只有一个主分支master,前面带*号的代表当前所在的分支

新建分支:
在本地电脑新建一个分支: git branch <新分支名字>
将新分支发布在github上: git push origin <新分支名字>

创建成功后查看:可见多了一个分支b1,目前位于master分支

切换分支:
切换到目标分支: git checkout <分支名字>
下图可见用命令已经切换到新建的b1分支上面

删除分支:
注意:不能删除当前所在分支,要删除某个分支,必须先切换到其他分支上
在本地删除一个分支: git branch -d <本地分支>
在github远程端删除一个分支: git push origin :<远程端分支>
在b1分支删除b1分支:(error)

在master分支删除b1分支:(ok)

合并分支:
命令如下: git merge <分支名字>
注意:该命令是将 <分支名字> 的改动合并到你当前所在分支,
【1】如果当前所在分支是master,那么合并到master之后,master分支需要进行push操作
1.切换到master分支

2. 将b1分支合并到master分支

3.可见master分支有变动,需要提交来更新到远程服务器

4. 提交master合并后的更新到远程服务器


5. 查看ok!!

【2】如果当前所在分支不是master,那么合并到当前分支之后,当前分支的本地和远程就都是合并后的最新状态,不需要进行push操作
1.切换到b1分支

2.将master合并到b1

3. 查看ok!!

查看分支之间的不同:
$ git diff branchName 查看当前分支与branchName分支之间的差异,也可以使用:$ git diff branch1 branch2 来比较这1和2分支之间的差异,当使用第一种方式比较时,如果当前工作目录中存在与branchName同名的文件,系统则会提示错误,要是指明要比较的是文件还是分支,如果比较分支,可以进入.git中进行比较或切换分支,如果是>比较文件,则使用$ git diff -- fileName命令。
$ git diff <branchA>:<fileA> <branchB>:<fileB>
$ git ls-tree -r branch 列出所有的树对象
合并冲突:
如果在不同的分支中都修改了同一个文件的同一部分,Git 就无法干净地把两者合到一起(译注:逻辑上说,这种问题只能由人来裁决。)
任何包含未解决冲突的文件都会以未合并(unmerged)的状态列出。Git 会在有冲突的文件里加入标准的冲突解决标记,可以通过它们来手工定位并解决这些冲突。
在解决了所有文件里的所有冲突后,运行 git add 将把它们标记为已解决状态(译注:实际上就是来一次快照保存到暂存区域。)。因为一旦暂存,就表示冲突已经解决。如
果你想用一个有图形界面的工具来解决这些问题,不妨运行 git mergetool,它会调用一个可视化的合并工具并引导你解决所有冲突。
要从该清单中筛选出你已经(或尚未)与当前分支合并的分支,可以用 --merge 和 --no-merged 选项(Git 1.5.6 以上版本)。比如用 git branch --merge 查看哪些分支>已被并入当前分支(译注:也就是说哪些分支是当前分支的直接上游。)
使用git新建分支以及管理分支的更多相关文章
- git 创建分支,删除分支,管理分支
参考 http://blog.csdn.net/dijason/article/details/9042425 查看分支: 1 查看本地分支: $ git branch 2 查看远程分支 $ g ...
- git新建和删除远程分支
创建远程分支: 新建本地分支 git checkout -b branch_name 推送到远程分支,分支名字和本地分支名字相同 git push origin branch_name:branch_ ...
- Git学习(四)——分支管理
一.创建与合并分支 1.创建分支 一开始的时候,master分支是一条线,Git用master指向最新的提交,再用HEAD指向master,就能确定当前分支,以及当前分支的提交点.每次提交 ,mast ...
- Git学习05 --分支管理02
1.冲突 产生冲突后,查看readme.txt 可以看到冲突内容 <<<<<<< ======= >>>>>>> ...
- Git之(四)分支管理
当我们初始化Git仓库的时候,Git会默认创建一个名为master的主分支.在实际工作中,主分支要求是一个稳定.健壮.安全的主线,一般不允许在主分支上直接进行开发,而是拉取一个新的分支,开发.测试完成 ...
- 10.Git分支-分支管理(git branch命令)、分支开发工作流
1.分支管理 git branch 不仅可以创建和删除分支,还可以做一些其他工作. 1.不带参数的 git branch ,得到本地仓库当前的分支列表.并且会显示,当期所在的分支,也就是HEAD所指 ...
- Git 分支 (三) 分支管理&&分支开发工作流
分支管理 git branch 命令不只是可以创建与删除分支. 如果不加任何参数运行它,会得到当前所有分支的一个列表: 注意 master 分支前的 * 字符:它代表现在检出的那一个分支(也就是说,当 ...
- GIT 分支管理:分支管理策略、Bug分支、Feature分支
通常,合并分支时,如果可能,Git会用Fast forward模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制禁用Fast forward模式,Git就会在merge时生成一个新的comm ...
- Git管理分支
管理分支:git branch 直至现在为止,我们的项目版本库一直都是只有一个分支 master.在 git 版本库中创建分支的成本几乎为零,所以,不必吝啬多创建几个分支.下面列举一些常见的分支策略, ...
随机推荐
- 万圣节的糖果(Halloween Sweets)
今天遇到codewars的一道题,这是链接,讲的是关于万圣节的一个题目,简单点说,就是9个包裹,一个天平,两次称的机会,怎么找出9个包裹中唯一一个较重的包裹. 像我这种年轻时候喜欢研究难题获得存在感的 ...
- 易图软件之EaseMap Desktop 1.0发布
概述 易图软件之EaseMap Desktop 1.0是一款基于arcgis runtime for wpf开发的地图编辑软件. 软件代码编写历时1个月终于完成. 目前这个版本的功能包括: 地图基本操 ...
- NT6 HDD Installer(硬盘装系统工具)装系统
32位系统上使用虚拟光驱装不了64位的,使用NT6就可以.
- dedecms 后台发布后的文章不能编辑出现一片空白的解决办法
dede后台无法写新文章也无法编辑以前的文档,文章编辑的地方无法写入,出现无法显示该页面的问题,这是怎么回事?我的dede在ftp中换过文件夹,是不是跟这个有关?该如何解决这个问题? 以下修改是针对d ...
- 1.4 云计算的SPI服务模型
云计算是通过共享资源池的方式来提高资源利用率的.在云计算中,根据其资源池中资源的类别,可以把云计算的服务模型分为三种,即所谓的SPI 模型 应用程序 Software as a Service ( ...
- android 底层开发入门(一)
第一个Linux驱动程序:统计单词个数 一.首先了解一下: 打印机驱动写入数据:对于打印机驱动来说,需要接收这些被写入的数据,并将它们通过PC的并口.USB等端口发送给打印机.要实现这一过程就需要Li ...
- unity选择形象并替换
//将需要的素材放入Resources文件夹内,比如下面的意思是monster文件夹内的内容 Sprite[] sprites = Resources.LoadAll<Sprite>(&q ...
- linux 添加基于weblogic的nodemanager的服务
用nodemanager来添加weblogic服务启动. 1.新建一个server,命名为Server1,端口设置为7055,其他采用默认值. 2.新建一个Machine,命名为Machine1.配置 ...
- 给linux 授权一个可以远程登录的账户
创建用户:grant all on *.* to '; 授权:flush privileges;
- 自定义响应结构 Json格式转换 工具类
import java.util.List; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterx ...