Git分支操作步骤
学习操作Git分支,具体如下:
- 查看分支
- 创建分支
- 切换分支
- 合并分支
- 解决分支的冲突
方案: Git支持按功能模块,时间,版本等标准创建分支; 分支可以让开发分多条主线同时进行,每条主线互不影响,分支效果如图所示
常见的分支规范如下:
MASTER分支(MASTER是主分支,是代码的核心)
DEVELOP分支(DEVELOP最新开发成果的分支)
RELEASE分支(为发布新产品设置的分支)
HOTFIX分支(为了修复软件BUG缺陷的分支)
FEATURE分支(为开发新功能设置的分支)
拓扑图:

一, 查看并创建分支
1. 查看当前分支
[root@web2 project]# git status
# On branch master
nothing to commit, working directory clean
[root@web2 project]# git branch -v
* master 0dc2b76 delete init.txt
2. 创建分支
[root@web2 project]# git branch hotfix
[root@web2 project]# git branch feature
[root@web2 project]# git branch -v
feature 0dc2b76 delete init.txt
hotfix 0dc2b76 delete init.txt
* master 0dc2b76 delete init.txt
二, 切换与合并分支
1. 切换分支
[root@web2 project]# git checkout hotfix
[root@web2 project]# git branch -v
feature 0dc2b76 delete init.txt
* hotfix 0dc2b76 delete init.txt
master 0dc2b76 delete init.txt
2. 在新的分支上可以继续进行数据的增删改查
[root@web2 project]# echo "fix a bug" >> new.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "fix a bug"
3.将hotfix修改的数据合并到master分支
注意,合并前必须要先切换到master分支,然后再执行merge命令
[root@web2 project]# git checkout master
[root@web2 project]# cat new.txt #默认master分支中没有hotfix分支中的数据
[root@web2 project]# git merge hotfix
Updating 0dc2b76..5b4a755
Fast-forward
new.txt | 1 ++
1 file changed, 1 insertions(+)
4. 将所有本地修改提交远程服务器
[root@web2 project]# git push
三, 解决版本分支的冲突问题
1. 在不同分支中修改相同文件的相同行数据,模拟数据冲突
[root@web2 project]# git checkout hotfix
[root@web2 project]# echo "AAA" > a.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "add a.txt by hotfix"
[root@web2 project]# git checkout master
[root@web2 project]# echo "BBB" > a.txt
[root@web2 project]# git add .
[root@web2 project]# git commit -m "add a.txt by master" #合并会报错如下:
自动合并 a.txt
冲突(添加/添加):合并冲突于 a.txt
自动合并失败,修正冲突然后提交修正的结果。
2. 查看有冲突的文件内容,修改文件为最终版本的数据,解决冲突
[root@web2 project]# cat a.txt #该文件中包含有冲突的内容
<<<<<<< HEAD
BBB
=======
AAA
>>>>>>> hotfix
[root@web2 project]# vim a.txt #修改该文件,为最终需要的数据,解决冲突
BBB
[root@web2 project]# git add .
[root@web2 project]# git commit -m "resolved"
四, 总结分支指针与HEAD指针的关系
- 创建分支的本质是在当前提交上创建一个可以移动的指针
- 那如何判断当前分支呢?答案是根据HEAD这个特殊指针
- 分支操作流程如图-5,图-6,图-7,图-8,图-9所示


结束.
Git分支操作步骤的更多相关文章
- svn与git区别简介,git分支操作在mac客户端soureTree和使用命令行如何实现
svn与git区别简介: 性能方面(经过实践的) svn:下载速度慢,因为它其中的源文件太多,并且在show log日志的时候每次都需要去服务器拉取,速度很慢 git:下载速度快,并且git clon ...
- GIT分支操作常用命令
切换分支:git checkout name 撤销修改:git checkout -- file 删除文件:git rm file 查看状态:git status 添加记录:git add file ...
- git 分支操作
查看git分支: git fetch刷新git git branch -a 列出所有的分支 git checkout origin/要切换的分支 git branch -r 查看远程分支 git c ...
- Git分支操作
1.创建分支 git branch <分支名> 2.切换分支 git checkout <分支名> 该语句和上一个语句可以和起来用一个语句表示: git checkout -b ...
- 3.git 分支操作
1.git branch 查看分支 git branch -a 查看远程仓库分支 结果显示,只有一个master分支,项目刚开始默认只有一个分支,名字叫做master,一般都不会直接在master上 ...
- git工作操作步骤
上班开始,打开电脑,git pull:拉取git上最新的代码: 编辑代码,准备提交时,git stash:将自己编辑的代码暂存起来,防止git pull时与库中的代码起冲突,否则自己的代码就白敲了: ...
- git分支操作笔记
git常用的基本操作 远程仓库只有一个master分支,创建dev分支并上传 # 创建本地dev分支 git checkout -b dev master # 推送dev分支到远程仓库 git pus ...
- git分支操作2
1.创建分支 git branch <分支名> 会自动复制主分支上的代码. 2.查看当前分支 git branch -v 3.切换分支 git checkout < ...
- Git分支操作——查看、新建、删除、提交、合并
查看分支 1 查看本地分支 $ git branch 2 查看远程分支 $ git branch -r 创建分支 1 创建本地分支 $ git branch branchName 2 切换 ...
随机推荐
- Pandas中的qcut和cut
qcut与cut的主要区别: qcut:传入参数,要将数据分成多少组,即组的个数,具体的组距是由代码计算 cut:传入参数,是分组依据.具体见示例 1.qcut方法,参考链接:http://panda ...
- Zookeeper w3cschool教程
1.简介 ZooKeeper是一种分布式协调服务,用于管理大型主机.在分布式环境中协调和管理服务是一个复杂的过程.ZooKeeper通过其简单的架构和API解决了这个问题. ZooKeeper允许开发 ...
- Oracle-SQL程序优化案例二
有时候写得不规范的SQL语句真的是占用很多时间 以下是我在工作中发现的规律,如果字段过多的使用函数,尽量不要将这些字段串联在一起做匹配或查询条件,比如红色注释部分,在执行红色部分的时候 这个SQL程序 ...
- Linux6.6及以上版本配置oracle-ASM共享储存-UDEV
在linux6.6版本之前,我们又两种方式可以配置asm共享磁盘,一种是安装asm驱动包进行asm磁盘组配置,另一种是UDEV通过识别共享存储UUID号进行asm磁盘组配置. 但在linux6.6之后 ...
- [CSP-S模拟测试]:序列(构造)
题目描述 给定$N,A,B$,构造一个长度为$N$的排列,使得:$\bullet$排列长度为$N$:$\bullet$最长上升子序列长度为$A$:$\bullet$最长下降子序列长度为$B$.我们有$ ...
- 《SQL Server 2012 T-SQL基础》读书笔记 - 6.集合运算
Chapter 6 Set Operators 语法如下: Input Query1 <set_operator> Input Query2 [ORDER BY ...] 有ORDER B ...
- Linux安装nslookup命令
做DNS的人都知道nslookup命令是做什么用的,windows系统自带的.但是linux系统是不自带这个命令的,需要人手动安装.如果您不记得这是哪个软件包提供这个命令的话,那您还真会有些麻烦了.下 ...
- MySQL高可用架构之MySQL5.7组复制MGR
MySQL高可用架构之MySQL5.7组复制MGR########################################################################### ...
- 线段树板子1(洛谷P3372)
传送 一道线段树板子(最简单的) 似乎之前在培训里写过线段树的样子?不记得了 何为线段树? 一般就是长成这样的树,树上的每个节点代表一个区间.线段树一般用于区间修改,区间查询的问题. 我们如何种写一棵 ...
- C# winform 键盘全局事件
本文转载自:http://www.cnblogs.com/yukaizhao/archive/2010/12/14/winform_keyup.html 在winform程序中给form添加了keyu ...