学习操作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. 使用@Test报java.lang.NullPointerException at org.eclipse.jdt.internal.junit4.runner.SubForestFilter.shouldRun(SubForestFilter.java:81)异常

    对公司的项目进行二次开发时,在调试过程中用到@Test注解,运行使发现控制台报空指针异常,如图: 参考网上相应资料后,删除项目中自带的Junit4.jar,然后使用eclipse开发工具自带的Juni ...

  2. 浅谈IPv4至IPv6演进的实施路径

    作者:个推运维平台网络工程师 宗堂   1 业务背景 在互联网呈现爆炸式发展的今天, IPv4网络地址数量匮乏等问题将会影响到我国的互联网发展与应用,制约物联网.5G等新业务开展.今年4月国家工信部发 ...

  3. Kaggle 房价预测问题参考资料

    作者的 Kaggle 主页:https://www.kaggle.com/pavansanagapati Tutorial - Housing Prices Model Prediction http ...

  4. 8 Django模型层(1)

    知识预览 ore简介 单表操作 章节作业 ore简介 MVC或者MVC框架中包括一个重要的部分,就是ORM,它实现了数据模型与数据库的解耦,即数据模型的设计不需要依赖于特定的数据库,通过简单的配置就可 ...

  5. 使用Git上传本地项目到http://git.oschina.net

    本文前言,因倡导开源精神,我也把代码传上了开源社区,可是,当初使用http://git.oschina.net 网站上传代码的时候不知道使用工具.我竟然一个文件一个文件复制粘贴,可费了我好大一个劲儿, ...

  6. HTML,CSS,JS个别知识点总结

    <input>是自闭合标签,没有<input></input>一说,只能写作<input/>. <div>可以是行标签也可以作为块标签,作为 ...

  7. What is the difference between Kill and Kill -9 command in Unix?

    w difference kill -9 pid and kill pid command - Ask Ubuntu  https://askubuntu.com/questions/791841/d ...

  8. sqlite时间类型

    SQLite分页显示:Select * From news order by id desc Limit 10 Offset 10这篇文章是根据 SQLite 官方 WIKI 里的内容翻译,如果有什么 ...

  9. CyclicBarrier 源码分析

    CyclicBarrier CyclicBarrier 是一个同步辅助类,它允许一组线程互相等待,直到到达某个公共屏障点 (common barrier point) 之后同时释放执行.CyclicB ...

  10. Crypko 基于滚动条进行的动画是如何实现的?

    Crypko 网站里面的下拉滚动条进行的动画感觉非常炫,于是研究了一下她的实现,发现她主要是使用了 ScrollMagic 这个库实现了基于滚动条的动画. 为什么这么确定就是用了 ScrollMagi ...