使用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 版本库中创建分支的成本几乎为零,所以,不必吝啬多创建几个分支.下面列举一些常见的分支策略, ...
随机推荐
- 最近开发的ECG项目
最近参与公司开发了一款读取ECG心电接口程序 原理就是通过心电设备读取患者的心电数据 并生成ECG文件 然后通过ECG客户端程序读取ECG文件 并解析转换成图片 上传至服务器 下边是客户端程序截图 客 ...
- 解析C#开发过程常见的编程模式
单例模式: 在多线程的程序开发过程中经常会遇到单例模式[单件模式],它的特点是不是根据客户程序的调用而生成新的实例,而是控制某个类型的实例数量只有一个.也就是说,单例模式就是保证在整个应用程序的生命周 ...
- PHP使用字符串名称调用类的方法
<?php class Game { function Play($id) { echo "Playing game $id\n"; } } $game = new Game ...
- Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!)
Hadoop集群搭建安装过程(三)(图文详解---尽情点击!!!) 一.JDK的安装 安装位置都在同一位置(/usr/tools/jdk1.8.0_73) jdk的安装在克隆三台机器的时候可以提前安装 ...
- textarea关于空格和换行那点事
textarea中空格连续输入多个的情况下,数据回显的时候页面只是显示一个:换行同样有问题,在textarea中有换行,在页面上却没有,今天终于看到个写的比较具体的文章,拿过来收藏下. 地址链接: h ...
- codeforces Simple Molecules
link:http://codeforces.com/contest/344/problem/B 刚开始想复杂了.一开始就想当然地以为可以有多个点,其实,人家题目要求只有3个点啊! 然后题目就简单了. ...
- 浅谈五大Python Web框架
转载:http://feilong.me/2011/01/talk-about-Python-web-framework 说到Web Framework,Ruby的世界Rails一统江湖,而Pytho ...
- FPGA书籍
Xilinx FPGA开发实用教程(第2版) 徐文波,田耘 著
- <%@page contentType="text/html;charset=gbk"%>与<meta http-equiv="Content-Type" content="text/html; charset=GBK">区别
前一个是在服务端起作用,是告诉应用服务器采用何种编码输出JSP文件流,后一个是在客户端起作用,是告诉浏览器是采用何种编码方式显示HTML页面. 前者由jsp引擎对输出内容进行编码, 后者将由I ...
- 基本的HTML标签
html的基本标签: <html><body> <h1>My First Heading</h1><h2>this second headi ...