美文网首页
iOS 开发之代码版本控制:Git

iOS 开发之代码版本控制:Git

作者: 请叫我安安小盆友 | 来源:发表于2017-02-11 21:25 被阅读0次

    Git 是什么

    Git 是一种分布式版本控制系统。每个团队成员在本地都有一份整个代码仓库的镜像。

    为什么用 Git

    • 节省时间:Git 命令运行快速
    • 离线工作:即使没有网络或是远程服务器宕机,也可以在本地进行几乎所有的操作
    • 撤销错误操作:改正上一个提交,撤销一个完整的提交...
    • 可靠性高:每个成员都有一个镜像,意味着丢失数据货仓库损坏的概率很低
    • 更高的自由度:强大的分支功能,打造合适的工作流
    • 顺应潮流:看看有多少知名的开源项目使用 Git 就知道了

    Git 基本工作流程

    1. 更改本地仓库中的某个文件
    2. 使用 git add 命令将改动照添加到暂存区
    3. 使用 git commit 命令提交改动
    4. 使用 git push 命令将改动提交到远端仓库

    更多的操作参考:

    工具和服务

    工作流

    基于 Git 强大的分支特性,可以灵活的打造工作流。比如 Atlassian Git TutorialComparing Workflows 章节中提到的以下四种:

    • Centralized Workflow
    • Feature Branch Workflow
    • Gitflow Workflow
    • Forking Workflow

    每一种工作流都有对应适合的使用场景。每个团队商定一个统一的工作流是至关重要的,可以自己定义一个完全适合自己项目的工作流,或者使用一个别人定义好的。在我以往所待过的团队中都默认使用了一个当前流行的工作流 git-flow

    实际开发过程中流程可能如下:

    • 初始化得到预设的 master 和 develop 分支
    • 从 develop 分支开 feature 分支开发新功能,完成后合并到 develop 分支
    • 功能点都开发完并经过测试后,从 develop 分支上开 release 分支,主要用来做最后的检查。等准备好上架后,再合并到 master 和 develop,并打上 tag
    • 从 master 分支上打包提交到 App Store
    • 如果发现 master 上的版本有 bug,从 master 开 hotfix 分支,修复后再合并到 master 和 develop

    SourceTree 也已对这种工作流提供了支持。

    最佳实践

    • 正确使用 .gitignore 文件,避免提交不必要的文件到代码仓库,可参考这里
    • 提交前充分测试自己的改动,这当然是最基本的。
    • 每次提交粒度要小,比如一个提交只修复一个问题,或完成一个小功能。对于非常复杂的新功能,应该将其分割成多个有意义的逻辑模块来进行提交。精简的提交可以让其他的开发团队人员更简单地明白其改动的用义。
    • 频繁地提交改动,便于其他成员共享你的改动,减少整合代码时的冲突。
    • 提交信息(commit message)规范化,加快 code review 进度,便于编写 release note,便于以后快速回忆起每个提交的变化。另可参考这里
      • 第一行作为标题,用少于 50 个字符来简短说明。
      • 在一个空白分割行后要对改动做一个详细的描述,比如为什么要进行这次修改,具体改动了什么。
      • 一定要使用现在时祈使句,动词要用比如 fix,add,change,而不是 fixed,added,changed。
    • 灵活使用分支功能,比如添加新功能,修复错误,尝试新的想法等等都可以新开一个分支进行。
    • 遵循一个工作流程,可根据项目开发的类型,部署模式和团队成员的个人习惯等,商定一个工作流并一直遵循它。

    拓展

    1. Become a git guru.
    2. Learn Version Control with Git

    相关文章

      网友评论

          本文标题:iOS 开发之代码版本控制:Git

          本文链接:https://www.haomeiwen.com/subject/zzmoittx.html