美文网首页
git团队开发

git团队开发

作者: 小张同学_loveZY | 来源:发表于2018-08-17 10:41 被阅读0次

    分支管理

    git仓库维护着团队多人开发的多条分支,不团的公司有不同的分支管理方式,这里以一种较为广泛的应用方式进行分析。

    分支分为:

    • online 分支:在线分支,线上最稳定可运行的版本
    • dev 分支:开发分支,所有的人的分支merge到dev分支,测试可用后merge到online
    • bug 分支:bug分支,如果dev上有bug时切成bug分支开发修复
    • f_name_subProject 分支: 最好有特殊的命名方式。每个人开发新特性分支
    • b_name_subProject 分支:每个人修复bug的分支

    每个人在自己的分支上进行开发,dev,online代码由专人管理。

    提交管理

    提交步骤:
    • git add chgfile
    • git diff HEAD^ </br> 查看本地与远程代码的差异
    • git commit -m "comment"
    • git push origin xxx分支名
    commit 的格式:有兴趣可查看 angular 规范

    type: subject [空格] [body]

    type

    • feat: 新功能
    • upd: 更新某功能(不是 feat, 不是 fix)
    • fix: bug 修复
    • doc: 文档改动
    • style: 代码格式更改(不影响代码运行的变动)
    • chore: 构建工具或辅助工具改动
    • refactor: 重构(不是 feat, 不是 fix, 不是 upd)

    例子:(注意分号)

    • git commit -m 'feat: 增加 xxx 功能'
    • git commit -m 'bug: 修复 xxx 功能 </br> bug的详细描述,或者解决方法'
    冲突处理:
    1. 本地拉取最新的分支
    2. 本地处理冲突
    3. 提交冲突到新的分支,取特殊命名:c_name_subProject
    4. 提交合并请求
    代码回滚:
    1. git log/reflog 查看历史提交
    2. git reset option(一般为--hard) commitID 回滚

    merge管理

    所谓的merge就是将不同分支的代码进行合并,merge一般有权限要求,需要向管理员发起申请。merge冲突问题,在上面的提交中已经谈到。
    merge还有一步是可以自查的步骤,这时候一定要认真看看自己的代码是不是和预期的一样,避免不必要的低级错误给团队开发带来麻烦。

    codereview

    说白了,就是看别人的代码。看看哪里有错哪里有值得借鉴的地方。可以在git线上发起分支间的review,发现差异,定位修改,快速学习。

    gitlab ci && gitlab runner

    GitLab Continuous Integration: gitlab持续集成

    官网释义:GitLab has integrated CI/CD pipelines to build, test, deploy, and monitor your code

    gitlab runner 是在本地搭建一个运行主机,运行Gitlab CI 指定的功能。

    使用方法:

    • 1.本地安装 gitlab runner

    • 2.远程注册 gitlab CI

    • 3.编写.gitlab-ci.yml,并且提交到远程online分支(保证后面大家都有)

      示例

        # 执行前后的提示信息
        before_script:
          - echo 'runner begin'
        
        after_script:
          - echo 'runner end'
        
        #增加任务
        php-PSR2-check:
          tags:  # 指定使用标签的runner运行该任务
            - vipx-runner
          script:
            - sh xx/xx/xx/runner   # 运行本地runner 脚本
          only:  # 提交代码的时候检测
            - pushes
      
    • 编写本地runer script

      示例-一个php语法检测的脚本.需提前安装PHP_CodeSniffer工具

        #!bin/sh
        PHPCS=/xxx/xxx/xxx/gitlab-runner/PHP_CodeSniffer/bin/phpcs
        #FILES=/home/apple/vipx/gitlab-runner/*
        #FILES=$(git dii HEAD online --stat)
        FILES=$(git diff origin/online --stat)
        EXIT_CODE=0
        if [ "$FILES" == "" ]
        then
            exit $EXIT_CODE
        fi
        
        for FILE in $FILES
        do
            echo "$FILE" | grep -q "\.php"
            REV=$?
            if [ "$REV" -eq "0" ]
            then
                $PHPCS --standard=PSR2 -v -n $FILE
                if [ $? -ne 0 ]; then
                    EXIT_CODE=1
                fi
            fi
        done
        exit $EXIT_CODE
      

    相关文章

      网友评论

          本文标题:git团队开发

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