今天上手了公司的一个项目由于是多人合作的,前后端数据算法的开发人员全部都在一个项目里,而且项目已经上线,进行功能迭代了,所以用到了git分支功能,下面来总结一下。
1.为什么要创建分支?
比如我们开发完了一个app上线了,接下那就是迭代功能开发了,如果上线的app出现了一个严重的bug,要你放下手头新功能的开发去解决这个bug,然后在发布一个新版本,如果你要是就在你要迭代功能的项目上进行修改发布的话,那肯定是不行的,且先不谈有没有新的bug出现,时间是也是不允许的,发布的前提还要把新功能完善好才行,要是删掉新功能的代码也不怎么现实,要是业务逻辑少一点还好说,要是多的话那还真是有点无从下手了,所以git的分支就很好的解决了这个问题; 如下图:
master就是我们的主代码,一直优化,到v1.4版本发布了,然后接着往下开发v2.0,v2.1版本,但是v1.4版本出现了一个严重的bug,这时候我们就在这个v1.4版本创建一个分支developer来对bug进行修复,到了v1.6版本bug修复好发布出去,然后在跟原来的master主代码进行合并一下把代码添加到v2.1版本就OK了,剩下就接着迭代开发了;

2.分支创建的方法
首先先创建一个项目,cd…(根目录)进行git提交:

git init
git add .
git commit -m "第一次提交"
要是不确定是否提交成功可以看一下提交记录
git log

我在项目上加3句代码 每添加一句就提交一次

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("第一次添加数据");System.out.println("第二次添加数据");System.out.println("第三次添加数据");}

git log 查看一下提交记录

如果提交记录过多 出现了如下图所示:

我们只需要按下Q就可以了;

通过上面我们可以看到 代码已经提交4次了,
打比方,如果第三次提交的代码出现了严重的bug需要修复,那么我们就在第三次提交的那个版本创建一个进行修复
首先我们要切换到第三次提交的版本上
git checkout 45b8f69dc83f59860a07855f8962dafbadf5b0c7

红色箭头部分为 git log 查看提交commit后面的参数
切换成功了

右边会显示出 当前版本的commit 参数

切换成功以后接下来就创建分支了
git branch developer(分支名称)
查询是否创建成功
git branch
*号代表当前代码所对应的分支
developer出现了 说明创建成功了

接下来我们切换到developer分支上进行代码修复了
git checkout developer
在看下我们的代码

 @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("第一次添加数据");System.out.println("第二次添加数据");}

现在我在这个代码里面添加一个方法

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("第一次添加数据");System.out.println("第二次添加数据");initData();}private void initData() {System.out.println("我是developer分支的方法");}
}

进行提交

git add .
git commit -m "developer分支的第一次提交"
git log 确定一下是否提交成功如果这个分支把bug修复好了那么就可以跟主分支进行合并了
我们先切换到主分支
git checkout master
然后在进行合并
git merge developer


如果出现了上图情况 说明出先了代码冲突,我们看一下代码

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("第一次添加数据");System.out.println("第二次添加数据");
<<<<<<< HEADSystem.out.println("第三次添加数据");
=======initData();}private void initData() {System.out.println("我是developer分支的方法");
>>>>>>> developer}
}

代码出现了

<<<<<<< HEAD
=======
>>>>>>> developer

这三个符号

======号表示分割线

<<<<<号到======号之间表示当前分支内容
======号到>>>>>号之间表示分支合并进来的内容
接下来我们就要自己手动整合到一起了,把不需要的删除就好了

public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);System.out.println("第一次添加数据");System.out.println("第二次添加数据");System.out.println("第三次添加数据");initData();}private void initData() {System.out.println("我是developer分支的方法");}
}

更改完成以后 git add .
将他们暂存起来
在运行
git status
看一看冲突是否都解决了

解决完成以后就可以提交了
git commit -m “跟developer分支合并完成提交”

要是以后不打算在使用这个分支了,接下来就可以把这个分支删除
git branch -D developer
在查看一下确认一下是否删除成功
git branch

下面详细使用步骤

Git分支简介

Git分支是由指针管理起来的,所以创建、切换、合并、删除分支都非常快,非常适合大型项目的开发。

在分支上做开发,调试好了后再合并到主分支。那么每个人开发模块式都不会影响到别人。

分支使用策略:

  1. 主分支(默认创建的Master分支)只用来分布重大版本(对于每个版本可以创建不同的标签,以便于查找);
  2. 日常开发应该在另一条分支上完成,可以取名为Develop;
  3. 临时性分支,用完后最好删除,以免分支混乱。如:
    1. 功能(feature)分支
    2. 预发布(release)分支
    3. 修补bug(bug)分支
  4. 多人开发时,每个人还可以分出一个自己专属的分支,当阶段性工作完成后应该合并到上级分支。

分支常用命令
1、 查看已有分支:

git branch –a

2、创建、切换分支

创建并切换分支:git checkout -b <分支名称>

这条命令和下面两条命令效果相同。
创建分支:git branch <分支名称>
切换分支:git checkout <分支名称>

3、合并分支

git checkout master先切换到master分支

git merge fenzhi再将B分支的代码合并到master(在merge合并分支的时候,代码会有冲突,需要自己去解决这些冲突)

4、删除与恢复分支

当分支已经合并到主分支,并且不再需要接着该分支继续开发(后期也可以从主分支分出来),可以删除该分支。
(1)删除本地分支
git branch -d <分支名称>


(2)删除远程分支
git push origin --delete <分支名称>

误删分支需要恢复
使用git log 查出分支的提交号。

git branch <分支名称> <提交号>

即创建提交号历史版本的一个分支,分支名称随意

5、查看分支图

git log --graph

为了使分支图更加简明,可以加上一些参数。

git log --graph --pretty=oneline --abbrev-commit

6、重命名分支

git branch –m 当前分支名 新的分支名

Git分支的意义和使用方法相关推荐

  1. 【git分支及处理冲突的方法】

    文章目录 git分支概述 git分支常用命令 git branch 分支名 git branch -v git checkout 分支名 git merge 分支名 基于码云模拟开发环境中处理冲突 总 ...

  2. git分支(存在意义和使用方法)

    Git分支简介 Git分支是由指针管理起来的,所以创建.切换.合并.删除分支都非常快,非常适合大型项目的开发. 在分支上做开发,调试好了后再合并到主分支.那么每个人开发模块式都不会影响到别人. 分支使 ...

  3. 终端中显示git分支名称的方法

    终端中显示git分支名称的方法   大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博客地址为:亓官劼的博客,B站昵称为:亓官劼,地址为亓官劼 ...

  4. 【Git技术】IDEA配置git及对项目创建git分支的方法

    目录 1. 常见错误 2.IDEA配置git 3. 克隆GitHub上的项目源码 4. 创建git分支dev 1. 常见错误 Git安装在本地.并建立本地仓库且与远程Github账号关联后,想要与ID ...

  5. 常用的git分支管理方法都在这了

    一.分支管理定义 几乎每一种版本控制系统都以某种形式支持分支,一个分支代表一条独立的开发线,使用分支意味着你可以从开发主线上分离开来,然后在不影响主线的同时继续工作,Git 分支实际上是指向更改快照的 ...

  6. 【代码管理】GitHub超详细图文攻略 - Git客户端下载安装 GitHub提交修改源码工作流程 Git分支 标签 过滤 Git版本工作流

    GitHub操作总结 : 总结看不明白就看下面的详细讲解. . 作者 :万境绝尘  转载请注明出处 : http://blog.csdn.net/shulianghan/article/details ...

  7. c++两个vector合并_这才是真正的 Git——分支合并

    本文作者:lzaneli,腾讯 TEG 前端开发工程师 "合并前文件还在的,合并后就不见了"."我遇到 Git 合并的 bug 了" 是两句经常听到的话,但真的 ...

  8. 这才是真正的 Git——分支合并

    本文作者:lzaneli,腾讯 TEG 前端开发工程师 "合并前文件还在的,合并后就不见了"."我遇到 Git 合并的 bug 了" 是两句经常听到的话,但真的 ...

  9. git 主干修改合并到分支_这才是真正的 Git——分支合并

    本文作者:lzaneli,腾讯 TEG 前端开发工程师"合并前文件还在的,合并后就不见了"."我遇到 Git 合并的 bug 了" 是两句经常听到的话,但真的是 ...

最新文章

  1. UIAlertView
  2. buffers与cached的区别
  3. threejs画面拖动事件判断
  4. 如何避开购买灯具的9大误区?
  5. 吴恩达 coursera AI 专项五第一课(上)总结+作业答案
  6. 阿里巴巴版来了:“有一个程序媛女友/老婆是什么样的体验?”
  7. android Matrix图片变换处理
  8. 学习在.NET Core中使用RabbitMQ进行消息传递之持久化(二)
  9. 从子窗体传递数据给父窗体
  10. hadoop的idea连接配置_idea远程连接hadoop(macOS)
  11. 修改linux默认启动级别(包括Ubuntu)
  12. java 贪吃蛇 控制台_控制台游戏贪吃蛇Java版
  13. caffe中的fine-tuning
  14. 让sublime编译php、js
  15. python怎么创建变量_创建一个新变量,它是python中另一个变量的...
  16. YDOOK: USB 转 TTL 模块 连线使用实例教程
  17. 棋牌游戏框架解析(一)
  18. centos7下定时重启tomcat
  19. UCSD ECE225A Syllabus
  20. 小心肝队-冲刺日志(第一天)

热门文章

  1. vim退出快捷键_vim常用快捷键及其功能
  2. 理解和使用zlib库 - 我个人的救赎
  3. Python3 基础语法
  4. 超视频时代,什么样的技术会成为底座?
  5. Opencv-Python逆透视变化处理图片
  6. 软件工程毕业设计课题(59)微信小程序毕业设计JAVA外卖点餐小程序系统设计与实现
  7. ios不能保存png_在Mac上将HEIC转换为JPG / JPEG或PNG
  8. 成功解决TypeError: ‘float‘ object cannot be interpreted as an integer
  9. cas37083-37-7/5,10,15,20-四(2,6-二氯苯基)卟吩;5-对( 4-溴丁氧基)苯基-10、15. 20三萃基卟啉的合成(筒称BrBPTPP,CgHsN,OBr )
  10. python pandas中读取excel并修改数据类型