Git分支的意义和使用方法

今天上手了公司的一个项目由于是多人合作的,前后端数据算法的开发人员全部都在一个项目里,而且项目已经上线,进行功能迭代了,所以用到了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了,剩下就接着迭代开发了;
Git分支的意义和使用方法_第1张图片
2.分支创建的方法
首先先创建一个项目,cd…(根目录)进行git提交:

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

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

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

git log 查看一下提交记录
Git分支的意义和使用方法_第2张图片
如果提交记录过多 出现了如下图所示:

Git分支的意义和使用方法_第3张图片我们只需要按下Q就可以了;

通过上面我们可以看到 代码已经提交4次了,
打比方,如果第三次提交的代码出现了严重的bug需要修复,那么我们就在第三次提交的那个版本创建一个进行修复
首先我们要切换到第三次提交的版本上
git checkout 45b8f69dc83f59860a07855f8962dafbadf5b0c7
Git分支的意义和使用方法_第4张图片
红色箭头部分为 git log 查看提交commit后面的参数
切换成功了
在这里插入图片描述
右边会显示出 当前版本的commit 参数

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

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

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

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

public class MainActivity extends AppCompatActivity {
 
    @Override
    protected 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

Git分支的意义和使用方法_第5张图片
如果出现了上图情况 说明出先了代码冲突,我们看一下代码

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

代码出现了

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

这三个符号

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

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

public class MainActivity extends AppCompatActivity {
 
    @Override
    protected 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分支的意义和使用方法_第6张图片
解决完成以后就可以提交了
git commit -m “跟developer分支合并完成提交”

要是以后不打算在使用这个分支了,接下来就可以把这个分支删除
git branch -D developer
在查看一下确认一下是否删除成功
git branch
Git分支的意义和使用方法_第7张图片

下面详细使用步骤

Git分支简介

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

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

分支使用策略:

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

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

git branch –a

Git分支的意义和使用方法_第8张图片

2、创建、切换分支

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

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

Git分支的意义和使用方法_第9张图片

3、合并分支

git checkout master先切换到master分支

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

Git分支的意义和使用方法_第10张图片

4、删除与恢复分支

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

在这里插入图片描述
(2)删除远程分支
git push origin --delete <分支名称>

Git分支的意义和使用方法_第11张图片

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

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

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

Git分支的意义和使用方法_第12张图片

5、查看分支图

git log --graph

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

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

Git分支的意义和使用方法_第13张图片

6、重命名分支

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

Git分支的意义和使用方法_第14张图片

你可能感兴趣的:(git,github)