今天上手了公司的一个项目由于是多人合作的,前后端数据算法的开发人员全部都在一个项目里,而且项目已经上线,进行功能迭代了,所以用到了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句代码 每添加一句就提交一次
@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 查看一下提交记录
如果提交记录过多 出现了如下图所示:
通过上面我们可以看到 代码已经提交4次了,
打比方,如果第三次提交的代码出现了严重的bug需要修复,那么我们就在第三次提交的那个版本创建一个进行修复
首先我们要切换到第三次提交的版本上
git checkout 45b8f69dc83f59860a07855f8962dafbadf5b0c7
红色箭头部分为 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
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 commit -m “跟developer分支合并完成提交”
要是以后不打算在使用这个分支了,接下来就可以把这个分支删除
git branch -D developer
在查看一下确认一下是否删除成功
git branch
Git分支简介
Git分支是由指针管理起来的,所以创建、切换、合并、删除分支都非常快,非常适合大型项目的开发。
在分支上做开发,调试好了后再合并到主分支。那么每个人开发模块式都不会影响到别人。
分支使用策略:
分支常用命令
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 当前分支名 新的分支名