Git 学习---- 分支及协作开发

Posted RAIN 7

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Git 学习---- 分支及协作开发相关的知识,希望对你有一定的参考价值。

文章目录

Git 学习(二)---- 分支及协作开发


分支理解及概述


  分支是什么? 分支可以理解成对某一分支的副本.

  比如说我们默认创建的分支就是 master,master的代码得一直在线上运行,如果出现了紧急bug,那么创建一个副本(分支 hot-fix),在副本上进行随意修改。master 合并 最终 hot-fix 的版本,达到优化bug且不影响程序线上运行的效果。

  在版本控制过程中,同时推进多个任务,每个任务都创建分支,开发分支的代码不会影响主线分支的运行。底层通过指针引用实现。


分支的好处


1、同时并行推进多个功能的开发,提高开发的效率

2、各个分支在开发的过程中互不影响,如果某一个分支开发失败,不会对其他分支造成影响,直白的分支删除重新开始即可。


分支(branch)的相关操作


(1)查看分支

git branch -v

可以查看所有分支及当前所在的版本

  master 前面有个 * 号,同时为绿色,表示当前指向的是 master 分支,同时后面显示该分支当前处在的版本, 创建分支 hot-fix 和当前分支内容是一样的,可以看作是当前master的副本


(2)git branch 创建分支

git branch [分支名]

创建了当前分支 master 的分支(副本) hot-fix

创建分支 hot-fix, 可以在 hot-fix 进行独立开发,最终合并即可。


(3)git checkout 切换分支

git checkout [分支名]

在执行先查看所有分支的状态

head 指向 master

执行切换分支,查看状态

此时的状态,画个图

我们在刚创建 hot-fix 分支,相当于 hot-fix 指向了 master之前的版本,拥有了之前master的内容

切换到了 hot-fix 分支,head 指针发生改变

如果在 hot-fix 分支上开发代码形成新的版本,首先master 无法直接拿到,必须master来合并才行


(4)git merge 合并分支

git merge [分支名]

  我们模拟 hot-fix 分支修改bug,改变hello.txt 内容,注意此时是在 hot-fix 分支上进行修改,之后我们还需要提交到本地库,才算提交成功,hot-fix 有了新的版本

此时 hot-fix 分支已经修改完毕了,生成了新的版本,(bug修改完毕)

master 作为上线的项目,需要把修复好的代码作为自己的下一个版本更新,就需要合并 hot-fix 这个分支


(1)切换回 maser 分支

切换成master分支后,当前版本依然为master的之前的版本,需要合并进行更新


(2)合并 hot-fix 分支

git merge hot-fix

发现,合并之后,master最新版本即为 hot-fix 的提交的版本,同时查看文件,master更新成功!

head指针指向 master,同时 master 因为合并 指向hot-fix 的最新版本作为 自己的最新版本。


(5)合并冲突


  如果master 又更新了,hot-fix 也更新了,而且更新的内容不同,master合并的时候本应该直接拿 hot-fix的最新版本,但是此时合并不知道要哪个更新的版本了!不知道要谁了,所以需要我们手动进行选择。我们在再根据需要在文本编辑器中进修修改即可。


团队间协作开发


一个团队的代码开发人员是怎么进行协作开发呢?

都是从远程仓库(GitHub、Gitee)拿代码

clone 是从0到1,从一无所有开始拿到所有代码

pull 相当于有之前的版本,从远程仓库进行更新一波

  程序员1 在本地开发一个程序之后,放到远程代码仓库了,让其他人进行其他功能模块的开发。程序员2 通过 远程代码仓库 clone下来 之前开发的程序到自己的本地库中,自己进行开发,开发完之后,提交上传到 远程代码中心(团队之间上传需要协作权限),程序员1 看别人开发完了,自己又想在开发的好一点,从代码中中心pull下来代码(更新),在进行后续的开发。


跨团队协作开发

以上是关于Git 学习---- 分支及协作开发的主要内容,如果未能解决你的问题,请参考以下文章

Git分支管理及常见操作

Git多个远程仓库及分支的使用

git简介,及协作开发

Git学习之路- 分支操作

git命令学习

Git 分支