git学习

来源:互联网 发布:directmail 阿里云 编辑:程序博客网 时间:2024/06/05 22:39
git相关概念:
    工作区:研发人员在库目录下进行开发,工作目录。即我们常见的目录结构。
    暂存区:index 文件保存了暂存区域信息,存放在.GIT隐藏文件夹下,它像一个缓存区域,临时保存改动。
    HEAD区:指HEAD文件夹,指向当前分支,最近一次提交后的结果。在GIT相当于“游标”,存放在.GIT隐藏文件夹。


    PullRequest:简称PR,拉取请求,从不同有关联或相同的不同分支提交仓库
    Fork仓库:从服务器的系统仓库中克隆的私有仓库,研发人员的大部分操作都在Fork仓库中操作。Fork仓库的分支会自动同步系统仓库的分支。所有人员有可克隆权限。


git工作流程:
    1、当对工作区修改/增加的文件进行git add命令时,工作区修改/增加的文件内容会被写入到对象库的一个新的对象中,同时该对象的id被记录在暂存区的索引文件中;
    2、当执行提交操作git commit时,暂存区的目录树会写入到版本库(对象库)中,master分支会做相应的更新,
    即:master最新指向的目录树就是提交时原暂存区的目录树;
    3、当执行git reset HEAD命令时,暂存区的目录树会被master分支指向的目录树替换,但是工作区不受影响;


GIT+Pull Request+Fork基本操作步骤:
    Fork仓库-》克隆-》拉topic分支-》开发代码-》提交PR-》合并PR-》创建release分支-》release分支操作-》提交发布PR,并打标签-》release和master分支合并-》hotfix分支开发


    服务器端:
    Production 生产分支
    HotFix 生产缺陷修复分支
    Release 转测待发布分支
    Master 开发主干分支
    本地(同时存在服务器):
    Fork多个 Master自动同步服务器,本地topic分支
    Fork-release 本地转测后bug修复分支
    Fork-hotfix 本地生产缺陷修复分支


  Fork:由开发人员从服务器的仓库中关联一个本地私有库,研发人员在Fork仓库中进行开发并提交。研发人员有可写权限。
  Master: 主干开发分支,所有研发人员编写完的代码提交到此分支中。只有研发经理有可写权限,研发人员提交Pull Request到此分支中。
  Release: 转测分支,从Master分支中拉出临时分支。版本需求开发完成,准备进行SIT测试阶段,需由质量人员和研发经理创建此分支,研发经理有可写权限,研发人员从fork的release分支提交Pull Request到此分支中。
  Production: 生产分支,需求开发并测试完毕后,从服务器的release 分支提交Pull Request给此分支进行打包编译并发送给用户及IT人员。质量人员有可写权限。提交上来的代码由质量人员merge。
  Hotfix:紧急版本分支,在生产上有缺陷及紧急需要进行修改时,需创建此分支。属于临时分支,完成后需要删除此分支。从Production分支中拉出。
  Topic: 开发分支, 从Fork仓库中的master分支拉出临时开发分支。在中央服务器的仓库中也显示此分支。研发人员每次提交PULL REQUEST后需要删除本分支,再从master分支创建进行开发。