git版本控制

来源:互联网 发布:网络cpd是什么意思 编辑:程序博客网 时间:2024/06/03 16:54

1. git是一个开源的分布式版本控制系统,可以有效、高速的处理从很小到非常大的项目版本管理。

2.git配置管理:

一般,有一个中央集中库,包含4个分支:

(QA才能merge)Production:发布生产,出现生产问题,转Hotfix

(研发经理)Hotfix:解决紧急生产问题,测试后转Production

(研发经理)Release:测试并解决测试出的问题。没有问题转Production

(研发经理)Master:主干开发,开发完成转Release

3.中央集中库是唯一的,公有的。可以fork多个私有库,clone到本地(本地库)进行开发。

集中库,fork私有库与本地库之间的关系如下:


4.当在本地修改文件时,使用add添加新增的文件到本地缓存(空的文件夹git默认不添加),commit操作提交到本地库。

5.提交4步曲: (1)本地修改文件(增删改)

   (2)add,新增文件到缓存区

   (3)commit,提交修改文件到本地版本库

   (4)push,提交本地库的差异文件到远程库

6.详细的git流程如下:

  1. 建立fork库,名称一般为包名-工号
  2. clone到本地
  3. 私有fork库上create branch建立topic分支,其中Branch type有Bugfix(修改bug),Feature(特性),Hotfix(紧急生产问题修改),Release(测试),custom(自定义),一般选custom,Branch name选择topic/V1.0
  4. 本地拉取(fetch)切换(switch)到topic分支,很重要!!!!一般不切换,android studio默认在master分支上修改,提交会很麻烦!!!
  5. 4步曲(详细内容,见上文提交4歩曲)(本地开发都在topic分支)
  6. PR(Pull Request)操作:私有fork库(topic分支)PR操作到集中库的Master分支,通知研发经理(merge)
  7. 开发完成,转测试:由集中库的master分支,create branch 到Release分支
  8. 本地测试:本地库由topic分支fetch、切换(switch)到Release分支
  9. 4步曲(测试出问题,本地修改都在release分支)
  10. PR操作:私有fork库的Release  PR 到集中库的Release分支,diff查看修改,通知研发经理(merge)
  11. 测试完成,转生产:集中库的Release  PR到集中库的Production分支,通知QA(merge)
  12. 同步:集中库的Release  PR到集中库的Master分支 (Master一定要最新的)
  13. 生产出现问题,转紧急:由集中库的Production 分支,create branch到Hotfix分支
  14. 本地同步:本地库fetch、切换(switch)到Hotfix分支
  15. 4步曲(本地紧急修改,都在Hotfix分支
  16. 私有fork库的Hotfix分支PR到集中库的Hotfix分支,通知研发经理(merge
  17. 解决紧急问题,转生产:集中库的Hotfix分支 PR到集中库的Production分支,通知QAmerge
  18. 同步:集中库的Hotfix分支 PR到集中库的Master分支

流程图,如下:



7.git丢失文件:

内容: A:修改文件1,添加文件2

B:修改文件1

提交: A(先提交):PR到master,成功

     B(后提交):PR到master,失败,冲突原因:A,B同事修改了文件1

因此,B从master上拉取到本地fork库,修改冲突,commit时,文件1为modify修改,文件2为add。如果,不commit文件2,PR到master后,直接擦除了文件2。此时A更新master,文件2丢失。修改冲突时,别人add的文件一定要commit

8.注意:本地开发的时候,一定要切换到topic分支,不然修改之后无法提交。







1 0