0.3.95 • Published 3 years ago

ppgit v0.3.95

Weekly downloads
99
License
ISC
Repository
-
Last release
3 years ago

背景

  • 七鱼 Git 分支模型规范
  • 业务组件库版本控制规范
  • 子仓库:一个Git仓库下面放了一个或多个多个其他Git仓库,存放各组之间需要复用的代码
  • 其他开发中的痛点:
    • 开发项目A时,发现项目B有线上bug,需要新建vscode窗口,再去搜索项目B的路径
    • 想打开项目的GitLab页面,要在浏览器搜索GitLab,再搜索项目名称
    • 一个版本需求中涉及的项目和分支过多时,上线时怕项目和分支有遗漏
    • 第一次clone下来的七鱼项目,要去nei查nei-key,再执行一堆命令,开发环境才能跑起来;想要在浏览器看到页面,还要在浏览器输入url
    • 容易忽略的git操作,比如:
      • 新建子仓库版本分支后,没有merge origin/online
      • 执行git push前没有执行git pull --rebase
      • 远端没有对应的分支,直接在本地执行了git push
      • 执行git checkout -b xxx 前没有执行 git pull

期望达到的目标

  • 落实主项目和子模块分支命名规范和版本控制流程
  • 主项目和子模块切换分支、提交改动、丢弃改动等行为的同步,减少主项目文件夹和子模块文件夹的频繁切换,避免主项目和子模块匹配错乱
  • 开发中常用命令集合的一键执行

开始

  1. 确保git版本为2.x,且提示语言为英文
  2. 终端执行 npm install -g ppgit
  3. 执行ppgit config编辑并保存配置文件,本地配置文件列出的属性会覆盖默认配置文件对应的属性,格式如下:

    {
      "programs": {
        "/ysf/web-project/web-callcenter":{
          "description": "七鱼-呼叫系统",
          "nei": [
            {
              "name": "管理端",
              "key": "c413102d5ee5978b48a4c01e0590faed"
            }
          ],
          "defaultPage":"/callcenter/page/dashboard/keynotes",
          "exam": true, // 是否在提交时进行eslint校验
          "devCommand":"dev", // 项目开发环境执行命令
          "skip":[
            "source/lib/tools/recorder/recorder.json",
            "source/lib/tools/recorder/nameUrlMap.json"
          ]
        },
      },
      "common":{
        "gitDomain":"g.hz.netease.com", // gitLab域名
        // 配置私有化项目存放的子文件夹
        "subWorkSpace":{
          "/privatisation/kuaishou":"/kuaishou",
          "/privatisation/yumchina":"/baisheng",
          "/privatisation/ruqi": "/ruqi"
        }
      },
      "user":{
        "name": "你的名字",
        "group": "小组缩写,如:ai、cc、hb、chat",
        "localhost":"本地配置hosts,如:xy.qytest.netease.com",
        "workSpace": "本地工作文件夹绝对路径,如:/Users/xiayang/Workspace/netease",
      }
    }
  4. 在.bash_profile中给ppgit配置别名以方便使用(可选)


命令

项目开发

  • ppgit start 运行开发环境,包括下载nei配置、启动性项目、启动nei、在浏览器中打开页面
  • ppgit proxy <keyword> 设置开发环境服务代理
  • ppgit open <keyword> vscode打开其他项目
  • ppgit manage add | remove | show 管理版本需要上线的项目和开发分支
    • add 将当前分支添加到版本需要上线的分支中
    • remove 将当前分支从版本需要上线的分支中移除
    • show 列出版本需要上线的项目和开发分支

git快捷命令

  • ppgit clone <git-path> 克隆项目和子模块,并安装依赖的npm包(在任意文件夹下执行该命令都会在工作文件夹下克隆项目)
  • ppgit info 展示主项目和子模块当前分支信息
  • ppgit version <version-number> 创建或切换到version分支,并创建或切换到对应的子模块分支
  • ppgit story <story-name> 创建或切换到story分支,并创建或切换到对应的子模块分支
  • ppgit hotfix <jira-number> 创建或切换到hotfix分支,并创建或切换到对应的子模块分支
  • ppgit feature <feature-name> 创建或切换到feature分支,并创建或切换到对应的子模块分支
  • ppgit submodule 给当前分支添加子模块分支
  • ppgit switch <branch-name> 切换到其他分支,同时子仓库切换到对应的分支或提交
  • ppgit commit <commit-message> 提交分支改动
    • 支持提交子仓库分支
  • ppgit push 将当前分支推送到远端
  • ppgit page 打开当前分支的GitLab页面
  • ppgit discard 丢弃当前分支上的改动
    • 支持丢弃子模块当前分支上的改动
  • ppgit merge branch-name 合并其他分支到当前分支
  • ppgit forward branch-name 合并当前分支到其他分支
  • ppgit revert commit-message-keyword 撤回某次提交
  • ppgit rename branch-new-name 重命名分支
    • 支持同时重命名本地和远端分支
    • 支持重命名子仓库的本地和远端分支
  • ppgit delete branch-name 删除分支
    • 支持同时删除本地和远端分支
    • 支持删除子仓库的本地和远端分支
  • ppgit finish <version-number> 完成版本上线,删除所有对应的版本分支
  • ppgit ignore 使.gitignore配置立刻生效
  • ppgit <command> 执行git命令,相当于git <command>

其他

  • ppgit config 配置ppgit
  • ppgit edition 获取ppgit版本信息
  • ppgit feedback 反馈问题
  • ppgit -h 查看帮助文档

TODO

  • 长期
    • vscode插件
  • 中期
    • 实现钩子
  • 近期
    • 补全项目配置
    • readme补全流程图
    • 兼容windows
    • 借鉴 gitless
0.3.95

3 years ago

0.3.94

3 years ago

0.3.93

3 years ago

0.3.92

3 years ago

0.3.9

3 years ago

0.3.91

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.3.8

3 years ago

0.3.7

3 years ago

0.3.4

3 years ago

0.3.2

3 years ago

0.3.3

3 years ago

0.3.1

3 years ago

0.3.0

3 years ago

0.2.9

3 years ago

0.2.8

3 years ago

0.2.7

3 years ago

0.2.6

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.2.3

3 years ago

0.2.1

3 years ago

0.2.2

3 years ago

0.2.0

3 years ago

0.1.8

3 years ago

0.1.7

3 years ago

0.1.9

3 years ago

0.1.6

3 years ago

0.1.5

3 years ago

0.1.4

3 years ago

0.1.3

3 years ago

0.1.2

3 years ago

0.1.1

3 years ago

0.1.0

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago

0.0.1

3 years ago