git 分支关系图谱讲解

对于刚接触git的同学来学,学会看git分支图,可以更清楚地使用git参与团队协作开发。接下来,咱们就进行场景模拟,来演示下git的分支图是怎么产生的。

一. 项目立项,去github上创建仓库

  项目通过了老板的审批,CTO此时去github上建仓库

git 分支关系图谱讲解_第1张图片

这个大家都会,就不浪费大家时间了。

二,程序员小王进行开发。

由于人手不够,暂时小王独自开发。首先在本地建立一个工作区(文件夹)

,然后克隆远程仓库的项目。

git clone https://github.com/****/gitunion.git

git 分支关系图谱讲解_第2张图片

小王开发,新建文件夹wang_1.text,然后提交到本地

使用命令查看工作区状态:

git status

git 分支关系图谱讲解_第3张图片

红色文件即表示git还未对该文件进行管理。我们必须让git管理他。

输入命令。

git add .//再次查看状态git status

git 分支关系图谱讲解_第4张图片此时颜色变绿,表示已被git托管。

提交被git托管的代码到暂存区

git commit -m "wang first commidt"

 

此时代码已经提交到暂存区了。我们可以继续创建文件wang_2.txt.然后按照一样的步骤提交。

输入命令:

git log

git 分支关系图谱讲解_第5张图片

可以看到我们两次代码的提交信息(提交人,日期,message等)。此时我们使用gitbash自带的图形显示工具

输入命令就能显示

gitk

git 分支关系图谱讲解_第6张图片

可以看到当前分支master(git默认的主分支)指向第二次提交。

此时小王提交本地分支到远程仓库的master分支。(注意:需要关闭gitk

工具,才能再次输入命令)

git push origin master

三,小李加入团队并行开发

小李被hr招聘进来,和小王一起开发。他在本地克隆仓库,创建文件li_01.txt和文件li_02.txt。并进行了两次提交。使用

git 分支关系图谱讲解_第7张图片

我们可以看到小李克隆的项目包含了小王的所有版本信息。这很好理解,因为小李是基于小王的版本克隆的。

接下来看下小李的git关系图。同意输入命令

gitk

git 分支关系图谱讲解_第8张图片

在小李的版本库上,分支指向小李的最新提交。黄色节点是指当前版本指向。

小李开发了一段时间,把当前的代码提交到远程仓库后就离职了。

git push origin master

四,小王提交代码到远程仓库

小王在小李的开发期间,自己也在不断开发。也开发了wang_3.txt这个文件,并且提交到本地的版本库中(commit命令)。此时小王的提交历史只有他自己开发的三个。

git 分支关系图谱讲解_第9张图片

版本关系如如下。

git 分支关系图谱讲解_第10张图片

我们可以看到,小王和小李在各自的工作区中都是直线向前的。对于每个人所在的直线,git上称为泳道

此时小王也提交了代码到远程仓库上。

 

git push origin master

git 分支关系图谱讲解_第11张图片

提示提交被拒绝,原因是小李在小王提交之前有更新版本库,所以小王必须将远程版本库与本地更新,即pull远程项目,此机制是保证本地提交之前和远程版本库是一致的,这样就不会覆盖他人的修改了。

拉取远程代码命令:

git pull origin master

再执行提交代码

git push origin master

git 分支关系图谱讲解_第12张图片

代码提交成功。

五,CTO小胡拉取项目验收

此时项目已开发结束,CTO小胡拉取项目

git 分支关系图谱讲解_第13张图片

可以看到小胡的本地有了小李和小王两个人的开发成成果

git 分支关系图谱讲解_第14张图片

此时打开gitk,观察版本的图形变化

git 分支关系图谱讲解_第15张图片

可以看到我们的版本变化。

这是基本的分析。其实万变不离其中,再复杂的图谱也是围绕着本质来的。

只要掌握了基本的分析,其他的都不在话下。

关注微信公众号,一起学习,一起成长。

git 分支关系图谱讲解_第16张图片

不积跬步无以至千里,最后祝大家学习更上一层楼!

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