学习操作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分支操作步骤的更多相关文章

  1. svn与git区别简介,git分支操作在mac客户端soureTree和使用命令行如何实现

    svn与git区别简介: 性能方面(经过实践的) svn:下载速度慢,因为它其中的源文件太多,并且在show log日志的时候每次都需要去服务器拉取,速度很慢 git:下载速度快,并且git clon ...

  2. GIT分支操作常用命令

    切换分支:git checkout name 撤销修改:git checkout -- file 删除文件:git rm file 查看状态:git status 添加记录:git add file ...

  3. git 分支操作

    查看git分支: git fetch刷新git git branch  -a 列出所有的分支 git checkout origin/要切换的分支 git branch -r 查看远程分支 git c ...

  4. Git分支操作

    1.创建分支 git branch <分支名> 2.切换分支 git checkout <分支名> 该语句和上一个语句可以和起来用一个语句表示: git checkout -b ...

  5. 3.git 分支操作

    1.git branch 查看分支 git branch -a  查看远程仓库分支 结果显示,只有一个master分支,项目刚开始默认只有一个分支,名字叫做master,一般都不会直接在master上 ...

  6. git工作操作步骤

    上班开始,打开电脑,git pull:拉取git上最新的代码: 编辑代码,准备提交时,git stash:将自己编辑的代码暂存起来,防止git pull时与库中的代码起冲突,否则自己的代码就白敲了: ...

  7. git分支操作笔记

    git常用的基本操作 远程仓库只有一个master分支,创建dev分支并上传 # 创建本地dev分支 git checkout -b dev master # 推送dev分支到远程仓库 git pus ...

  8. git分支操作2

    1.创建分支 git branch <分支名>           会自动复制主分支上的代码. 2.查看当前分支 git branch -v 3.切换分支 git checkout < ...

  9. Git分支操作——查看、新建、删除、提交、合并

    查看分支 1 查看本地分支 $ git branch   2 查看远程分支 $ git branch -r     创建分支 1 创建本地分支 $ git branch branchName 2 切换 ...

随机推荐

  1. 特征提取算法(4)——LoG特征提取算法

    目录 1.介绍 2.LoG原理 3.数学原理 4.模板性质 1.介绍 LoG(DoG是一阶边缘提取)是二阶拉普拉斯-高斯边缘提取算法,先高斯滤波然后拉普拉斯边缘提取. Laplace算子对通过图像进行 ...

  2. VMware 启动之后发现 eth0不存在

    启动虚拟机之后发现,eth0不存在. 问题现象: 解决办法(我): 1. 查看/etc/sysconfi/network-scripts/ifcfg-eth0的配置是否与外部网络配置一致. 例如NAT ...

  3. 【转】Java MySQL数据类型对照

    Java MySQL数据类型对照 类型名称 显示长度 数据库类型 JAVA类型 JDBC类型索引(int) 描述             VARCHAR L+N VARCHAR java.lang.S ...

  4. Java数据结构与算法(3):队列

    队列也是一种表,不同的是队列在一端进行插入而在另一端进行删除. 队列模型 队列的基本操作包括入队.出队操作.在表的末端插入元素,在表的开头删除元素,即先进先出(FIFO). 队列的数组实现 对于每一个 ...

  5. Java heap size

    今天在性能诊断工作中遇到 Java heap size, 下面是它的相关的概念. 什么是Java heap size ? Java heap size 堆栈大小, 指Java 虚拟机的内存大小.我的理 ...

  6. Deepin 系统安装并配置PHP开发环境

    Deepin是由武汉深之度科技有限公司开发的Linux发行版.Deepin团队基于Qt/C++(用于前端)和Go(用于后端)开发了的全新深度桌面环境(DDE),以及音乐播放器,视频播放器,软件中心等一 ...

  7. CMD模块打包部署总结

    目前线上系统利用Seajs做模板化,但是没有对js和css进行打包,在这次简历搜索优化项目里我尝试对gulp插件对Seajs模块打包. 安装gulp和相关插件 npm install -g gulp ...

  8. loadrunner+win2003虚拟机的安装

    lr11的安装和使用 准备材料: 1.win2003镜像下载 2.虚拟机下载 3.lr11的下载 一.创建win2003虚拟机 打开虚拟机,选择win2003系统镜像,输入密钥(可百度),用户名密码( ...

  9. STL 迭代器适配器(iterator adapter)

    iterator adapter graph LR iterator --- reverse_iterator iterator --- Insert_iterator iterator --- io ...

  10. STL关联式容器之set\map ----以STL源码为例

    关联式容器的特征:所用元素都会根据元素的键值自动被排序. set STL 中的关联式容器低层数据结构为红黑树,其功能都是调用低层数据结构中提供的相应接口. set元的元素不会像map那样同时拥有键(k ...