git(git-flow)的高效管理使用

一、svn与git的比较:

  • git是分布式的,你可以从任一节点pullpush代码
  • git不需要联网也可以commitcommit也可以合并
  • git分支之间很方便merge,也可以只pick某个commit
  • git很容易撤销修改和恢复版本
  • SVN使用简单,只需commitupdate
  • SVN权限管理可以限制到单个文件

二、使用

  • git clone(ssh+http(s))
  • git add & commit, git pull & push
  • git status & log & blame
  • git checkout & git reset
  • git remote
  • git cherry-pick

三、常用准则

  • 经常pull代码,与最新代码保持同步
  • 多点commit代码,如果没有做完可以不push,但是一天至少push一次。避免本地代码丢失
  • 独立功能尽量新开feature分支,开发完后再mergedevelop分支
  • merge代码要小心,最好使用IDE或者GUI工具来pull代码,merge代码冲突的话它有很好的提示和merge方法
  • 每次push代码前确保代码能编译通过
  • commit Message要能说明本次修改的目的。最好遵循一定的规范

四、commit规范文案

  • add: 增加相应功能
  • change: 修改相册浏览界面
  • update: 更新分享到第三方的库
  • fix: #169 #124(没有bug编号的直接把问题描述写上)
  • 准则就是要方便追溯问题

五、git-flow

  • 多个版本同时进行开发。1.0版本还在改bug阶段,1.1要进行开发
  • 多个团队同时进行开发。某个团队开发一个功能分支,另外一个团队需要另一个功能分支
  • 新版刚发不久,发现严重bug需立即修复
  • 是构建在Git之上的一个组织软件开发活动的模型,是在Git之上构建的一项软件开发最佳实践
  • 工作流定义了一个围绕项目发布的严格分支模型。虽然比功能分支工作流复杂几分,但提供了用于一个健壮的用于管理大型项目的框架

六、git-flow分支

  • master:存放的应该是随时可供在生产环境中部署的代码(Production Ready state)。当开发活动告一段落,产生了一份新的可供部署的代码时,master分支上的代码会被更新。同时,每一次更新,最好添加对应的版本号标签
  • develop:保存当前最新开发成果的分支。通常这个分支上的代码也是可进行每日夜间发布的代码(Nightly build
  • release:当开发结束后用来提测的分支,所有测试阶段的bug全部在此分支修复,测试结束后合并到 master develop 分支中
  • feature: 这个分支主要是用来开发一个新的功能,一旦开发完成,我们合并回Develop分支
  • hotfix: 当我们在Production发现新的Bug时候,我们需要创建一个Hotfix, 完成Hotfix后,我们合并回MasterDevelop分支

 

七、总结

  • 一切皆分支,本质是分支管理
  • 严格规定了哪些分支从哪里产生,最终合并到哪些分支上
  • 结合SourceTree第三方工具很方便使用
  • 多人和多团队协作很有用
posted @ 2020-04-30 09:50  文艺IT者  阅读(261)  评论(0编辑  收藏  举报