Git学习与使用 | 青训营笔记

139 阅读2分钟

这是我参与「第三届青训营 -后端场」笔记创作活动的第4篇笔记。

本篇笔记先对青训营课程“Git的正确使用姿势与最佳实践”做一个总结整理,然后梳理一下我们小组在项目开发中对于Git的使用。

Git课程

文件快照

  • 快照的基本思想其实和immutable.js类似,使用immutable生成的对象都是不可变对象,每次对该对象进行修改都会生成一个新的对象,那么是不是意味着需要把原来的旧对象重新复制一遍?显然不是,immutable会维护一个树形结构,新对象的修改只会添加某些节点,然后返回一个新的指针,并与旧对象共用相同的部分。git快照也是这样,只不过是在文件系统层面实现的。我们都知道当你删除一个文件后,文件原来所占的磁盘空间并不是被清空,而是被文件系统标记为“已废弃,可修改”的状态,快照的作用就相当于将旧文件所占的空间保留下来,并且保存一个引用,而新文件中会继续使用与旧文件内容相同部分的磁盘空间,不同部分则写入新的磁盘空间。总的来说git其实也算是保存diff的方式,只不过是在文件系统层次上实现的。
  • 参考资料:www.zhihu.com/question/27…

Git命令

Git的配置与使用

  • HTTP Rmote 与 SSH Remote???

大项目中Git的运用

  • 使用git进行代码管理,并对分支的功能进行定义
  1. 开发前,确认各分支功能:

    • main分支只用于存放稳定版代码,标明版本号以及更新内容,例如v1,v1.1
    • dev分支用于合并多个模块后修bug,确认正常运行后后merge到main
    • 创建search-biz和search-engine分支,用于搜索业务层和搜索引擎层的开发(在开发过程中确认了两者只通过Engine接口相连的逻辑,以相互解耦)
  2. 开发中:

    • 每个人会根据自己负责的任务,从biz或engine分支中checkout出功能分支进行开发
    • 先在功能分支进行测试,然后提pr到模块的分支,review后进行修改,最后merge