学习操作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. Kohana重写接收不到get参数问题

    .htaccess,不需要重启apache # Turn on URL rewriting RewriteEngine On # Installation directory RewriteBase ...

  2. Java 统计单词频数

    输出单个文件中的 N 个英语单词出现的次数 定义双列集合,将单词不重复的读入一列中,另一列用来计数 import java.io.BufferedReader; import java.util.Ar ...

  3. WIN10系统和压缩内存占用磁盘过高的解决方案(亲测有效)

    系统和压缩内存磁盘占用过高的解决方案 最近一段时间玩游戏看视频经常莫名的卡顿,观察发现电脑卡的时候,WIN10进程中的"系统和压缩内存"一项占用了近100%的磁盘空间. 百度搜索到 ...

  4. 搭建wordpress-安装xshell

    安装xshell 下载地址 https://www.netsarang.com/download/down_xsh6.html?token=RmxrTGc3VEkwN2VxSnRuRC92RENkUU ...

  5. kubeadm快速部署kubernetes(十九)

    安装要求 部署Kubernetes集群机器需要满足以下几个条件: 一台或多台机器,操作系统 CentOS7.x-86_x64 硬件配置:2GB或更多RAM,2个CPU或更多CPU,硬盘30GB或更多 ...

  6. python 调用C++ DLL,传递int,char,char*,数组和多维数组

    ctypes 数据类型和 C数据类型 对照表 ctypes type C type Python type c_bool _Bool bool (1) c_char char 1-character ...

  7. VUE(vue对象的简单属性)

    一:全局过滤器和局部过滤器 ps:不管是局部过滤器还是全局过滤器,一定都要有renturn 返回 <!DOCTYPE html> <html lang="en"& ...

  8. ASP.NET Core 上传微信永久视频素材

    话不多说直接上源码 请求实体  public class AddVideoRequest    {        /// <summary>        /// 文件流        / ...

  9. [Usaco2005 mar]Yogurt factory 奶酪工厂

    接下来的N(1≤N10000)星期中,奶酪工厂在第i个星期要花C_i分来生产一个单位的奶酪.约克奶酪工厂拥有一个无限大的仓库,每个星期生产的多余的奶酪都会放在这里.而且每个星期存放一个单位的奶酪要花费 ...

  10. chapter2

    Chapter2 Tip1 静态工厂方法代替构造器 公有的静态方法,只是一个返回类实例的静态方法. 静态工厂方法的优势: 优势一: 有名称,如果构造器本身没有正确的描述被返回的对象,具有适当名称的静态 ...