2019/12/11 07-Git分支和工作流管理

在这里插入图片描述
一般来讲用的就是add,commit,push,pull,colone,对于checkout和reset,用的时候比较少,不要轻易的改名或者删除,一般项目开发的集成环境,一般叫IDE(比如pycharm),做项目就需要注意模块化了

做任何项目应该跟版本管理工具关联起来,一上来总有人做一个初始化构建,这个项目大概需要多少个模块,这些模块包先建立起来,然后告诉下面的人可以开发了,下面的人就去克隆在这里插入图片描述在这里插入图片描述
每个人有自己的账户生成一个密钥,把公钥添加进去即可在这里插入图片描述在这里插入图片描述
协议可以用gpl ,apache之类的,一般项目老大做这个是情感在这里插入图片描述
现在就有两个项目
在这里插入图片描述
pycharm把当前项目关闭在这里插入图片描述
就会出现这个界面在这里插入图片描述
从自己的git服务器里拉在这里插入图片描述在这里插入图片描述在这里插入图片描述
就是在这里得到的
在这里插入图片描述
成功不成功,需要试一下在这里插入图片描述在这里插入图片描述
上次的公钥是在windows家目录在这里插入图片描述在这里插入图片描述
现在就可以用公钥进行通讯,在这里插入图片描述
项目所有管理目录,O:/pro,可以在里面创建CMDB目录,cmdb才是项目目录在这里插入图片描述
这才是真正的项目目录
在这里插入图片描述
cmdb是一堆项目的跟目录,cmdb是开发的一个项目的目录在这里插入图片描述
这里的log就跟git log一样在这里插入图片描述
建立第一个文件,修改内容,vcs里面的commit和图标都可以提交
在这里插入图片描述
git status看一下 在这里插入图片描述
刚开始建立的时候,需要把ignore文件创建出来,这个文件可以加可以不加
在这里插入图片描述
*.是要被忽略的在这里插入图片描述
现在就可以提交了在这里插入图片描述
到log里看一下,一个用户在什么时间做了提交,head指向主分支在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
项目开发建立几个python文件
在这里插入图片描述在这里插入图片描述在这里插入图片描述
第一次提交
在这里插入图片描述在这里插入图片描述
可以在目录里选择git push在这里插入图片描述在这里插入图片描述对应关系已经好了
在这里插入图片描述
查看一下config在这里插入图片描述
当使用可视化工具去建立这个关系的时候,clone就已经把这个配置文件做好了在这里插入图片描述
项目里已经有信息了
在这里插入图片描述在这里插入图片描述
stash本身意思存储
git stash 暂时存储最后一次提交后的变化,放入栈中,这是另一种暂存机制
在这里插入图片描述
git stash pop 从栈中取出刚才变化,并合并到代码中,同时将栈中这个数据弹出
在这里插入图片描述在这里插入图片描述在这里插入图片描述
再写一个文件,加入git
在这里插入图片描述在这里插入图片描述
提交一下
在这里插入图片描述
log这里就有两条了在这里插入图片描述
提交之后完善代码
在这里插入图片描述在这里插入图片描述
但是现在发现刚才的有问题,那么就需要先保存当前状态了,免得修改的丢失,可以先不提交,修改先暂存起来,暂存不是放在暂存区的,是放在stash功能里
在这里插入图片描述
随便起一个名字在这里插入图片描述
现在就回到上一次 提交的状态了,commit2,等于stash记得上一次变化之后的修改变化在这里插入图片描述
假设这个bug修复了在这里插入图片描述
修复之后把这个文件提交上去在这里插入图片描述在这里插入图片描述
把bug修复后就提交,要进行说明
在这里插入图片描述
把刚才stash存储的在这里插入图片描述
现在就有三次了
在这里插入图片描述
stash可以把上一次提交到现在的变化保存起来,可以先把提交的代码进行修改在这里插入图片描述
不打勾表示保存的数据,还原了依然保留。打钩以后,pop就没了在这里插入图片描述
代码就恢复了
在这里插入图片描述
记录的其实就是文件变化,整个git系统都是这样子的

可以继续开发
在这里插入图片描述在这里插入图片描述
应用场景
在这里插入图片描述

直接push没有问题在这里插入图片描述在这里插入图片描述在这里插入图片描述
有4次提交历史在这里插入图片描述
bash是命令行,带有ssh这样的命令挺好用的,gui是图形界面在这里插入图片描述
点开gui,可以看主分支上的文件
在这里插入图片描述
还可以看分支上的文件
在这里插入图片描述
可视化
在这里插入图片描述
提交历史,加加减减在这里插入图片描述
作为一个项目管理者需要做分支了,分支的开发和分支的合并,一般都是项目管理者做的在这里插入图片描述在这里插入图片描述
到目前为止我们只看到一个master
在这里插入图片描述
多人开发的时候就不适合了,主分支肯定不适合多人开发,就需要引入多分支,多分支就要命名,名字就相当于唯一标识,标识不可重复,
下图,橙色代表第二分支,实际上是一个开发分支,两条线就需要各自做各自的事情
分支名在版本库中必须唯一
不能以-减号开头
可以使用/,但是不能以它结尾,被它分割的名称不能以.开头
不能使用两个连续的…
不能包含任何空白字符,git的特殊符号

在这里插入图片描述在这里插入图片描述
到目前为止所有操作都是在主分支上在这里插入图片描述
在某一个上面开始画分支
在这里插入图片描述
现在是4个节点,打算开一个分支,但是没commit,还没有节点
在这里插入图片描述在这里插入图片描述
checkout branch ,开始往这条分支拐弯,如果不checkout,那么还是在master上在这里插入图片描述
分支还没有commit节点,就还是4个
在这里插入图片描述
有了分支以后,完善app代码在这里插入图片描述
现在在开发分支上写代码了在这里插入图片描述
提交 在这里插入图片描述在这里插入图片描述
现在head跟着dev跑,head是当前分支的最后一次提交在这里插入图片描述
在这里插入图片描述
如果在dev上做了修改,就可以push在这里插入图片描述在这里插入图片描述
现在分支就有两个在这里插入图片描述
历史都在在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
怎么合并
在这里插入图片描述
主分支上checkout
在这里插入图片描述
回到了下面的commit4提交了,checkout会把当前工作区替换掉在这里插入图片描述
操作是先回到主分支上来在这里插入图片描述
合并之后在主分支上产生一个新的提交**产生**在这里插入图片描述
调用git的merage change,合并某一个分支数据到当前分支上来
在这里插入图片描述
这两个很重要在这里插入图片描述在这里插入图片描述
这块就发生改变了
在这里插入图片描述
选择no fast forward,就会在主分支上建立一个结点,主分支继续向前发展,合并到6上去
在这里插入图片描述在这里插入图片描述现在合并,只是在本地,还需要push到远程仓库
在这里插入图片描述在这里插入图片描述

在这里插入图片描述
主分支上才有这个信息
在这里插入图片描述在这里插入图片描述在这里插入图片描述
fast forward的合并,最后变成一条线了,相当于dev消亡了
在这里插入图片描述
not fast forward,dev分支还在
在这里插入图片描述
fast forward会把分支修改拉回到master分支上去,最后看到分支图是一条直线
在这里插入图片描述
实际上 not fastforward 用的人比较多,因为可以看到什么时候开分支,什么时候合并了
在这里插入图片描述
no-ff的好处是,可以看清楚开发分支上的代码改动,大多数开发的时候,都会开辟一个分支是开发分支dev,在这个分支上增强功能,进行测试,审查,最终把代码合并到master
master只保留稳定的代码,是可以发布的代码
把代码放到master上
一般让运维或测试checkout出来,一个版本,进行部署,dev是开发分支,master是合并代码分支以及发布代码分支
中小规模的公司,两个分支足够了

在这里插入图片描述

git工作流,工作流在每家公司都不一样,看领导喜欢用什么
管理水平不够,也会代码混乱
在这里插入图片描述
master一般是合并完功能的一条分支,一般不直接做开发
在这里插入图片描述
测试不太适合到开发上直接拿代码在这里插入图片描述
release这一块往往是测试可以参与的分支,测试完解决完,再发布到主分支master,主分支只放确认无误的代码在这里插入图片描述
开发完成一个功能,可以称为一个里程碑发布出去,release在这里插入图片描述
但是有的人懒,直接合并到主分支上上去,测试,测试完再发布,两条分支就这么做
在这里插入图片描述
matser主分支基本上放一些功能完成的代码、
hotfix,就是如果有问题,临时拉出来的热补丁修复,修复好了就合并进去,不仅是修复主分支,还有开发分支也需要,这样就适合临时修改主分支上的bug
在这里插入图片描述
release这个版本可以修复的发布到主分支,也发布到develop
在这里插入图片描述
一般公司用到三条就不错 了在这里插入图片描述
很多公司就两条分支开发,测在master分支,直接在上面修复,然后直接提交
在这里插入图片描述
其实搞一个紧急修复的好一点,no-FF,对于测试发现的问题,紧急拉个分支来修复在这里插入图片描述
**A同志做长线开发需要3个月,上面的是短期开发,做2周,都在完成各自的功能,,最简单也需要两分支开发
一般都是完成一个大模块,可能于10几个.PY文件(不会分配给A又分配给B,会合理分配一下,最后做代码审查)不会几个人改同一个文件
**
在这里插入图片描述

里程碑指的是,确实完成了一定的功能,通知测试组在哪个分支上拉代码进行测试,分支越多,管理水平要求越高
,或者AB公司不同的功能,就不合并了
在这里插入图片描述
大多数修改任务是add,commit,肯定是在某一条分支做开发的,合并和分支是非常复杂的管理功能(由项目管理管控)一般开发分支,主分支,发布分支差不多了

主分支上打标签,因为是给别人发不出去的
在这里插入图片描述
打标签 new tag在这里插入图片描述在这里插入图片描述
设置好标签了,可以查找在这里插入图片描述
假设下面这个叫0.1在这里插入图片描述
搜素可以跳转
在这里插入图片描述
打标签一般是在主分支上打标签,很少有人在开发分支上打标签
如果不清楚,没事就需要自己测测

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值