AI智能
改变未来

Python增强下git那长长的指令


场景

现如今有点规模的公司都使用GitFlow模式进行分支管理、虽然插件给我们带来了非常大的方便,但切换分支、找分支、起分支还是那么的麻烦

需求

在社会主次国家,每个生活在底层的劳动人民,他们默默的工作着,各种996、多线程的工作着

betadevdevelopeffectiveJavafeature/20210712-reviewOpenApifeature/20210727-tapd-1003358feature/20210824-tapd-1004652feature/20210909-tapd-1005586feature/20210913-tapd-1005758hotfix/20210915-fix-gainPointForGiftCardmaster* test

每个码农都同事进行着非常多的需求,为了使我们的工作更加的有效率!我们也给自己提几个需求!

  • 快速的建立
    hotfix/feature

    分支

  • 在繁多的本地分支中快速的切换到指定工作分支
  • 清楚的描述出每个分支对应的任务描述

…….

为此 给原生的git 增强的想法早就出现了,只是一只没去写~,今个儿就用Python来提升下!

开发中

代码目录结构

> tree├── README.MD├── __init__.py├── cmdDict.py├── command│ ├── __init__.py│ ├── commandStrategy.py│ ├── createTaskStrategy.py│ ├── gitCmdStrategy.py│ ├── gtaskHelp.py│ ├── printCurrentBrStrategy.py│ └── switchBranch.py├── gtaskContext.py├── main.py└── support├── __init__.py├── breancEntity.py├── clientCommand.py└── parseError.py
  • main.py

    为入口函数

  • cmdDict.py

    文件为配置文件

  • command

    目录就存入具体的命令实现

  • support

    目录为一些支持的类

cmdDict.py

文件

from command import printCurrentBrStrategy,gtaskHelp,createTaskStrategy,switchBranch,gitCmdStrategy\"\"\"这里配置下指令对应的命令解释器\"\"\"cmd = {\"-b\": printCurrentBrStrategy.PrintBr(),\"--help\": gtaskHelp.GtaskHelper(),\"-c\":createTaskStrategy.CreateTask(),\"--co\":switchBranch.SwitchBranch()}\"\"\"特殊的配置,解析git的命令\"\"\"git = {\"git\": gitCmdStrategy.GitCmd()}

主要是配置命令以及对应的解释脚本文件

9月14号

  • 建立仓库
  • 实现 查看 所有分支
  • 创建分支、
  • 快速切换分支
  • help信息

创建分支的时候提示输入任务名、描述等。查看所有分支的时候给分支都打上对应的索引号、通过切换指定的索引号来切换分支,同事显示的时候也把分支描述显示出来

Savey:baking-apiserver:% g -b                                                                                                                  <test>[001] - beta ##beta分支[002] - dev[003] - develop[004] - effectiveJava[005] - feature/20210712-reviewOpenApi[006] - feature/20210727-tapd-1003358 ##电子发票[007] - feature/20210824-tapd-1004652 ##预售[008] - feature/20210909-tapd-1005586 ##取消配送[009] - feature/20210913-tapd-1005758 ##美团外卖订单优惠明细打印[010] - hotfix/20210915-fix-gainPointForGiftCard[011] - master ##yes[012] - test ##test

9月15号

  • 兼容原生的
    git

    使用

Savey:baking-apiserver:% g versiongit version 2.24.3 (Apple Git-128)
  • 为当前的分支添加描述

是这样的、当初建立分支的时间忘记写上描述了,那么就再次快速的给分支打上描述吧、不用输入

git config branch.<branchName>.description

现在只要这样

Savey:baking-apiserver:% g --desc test分支✅Success!!

9月16号

由于咋们的指令会越来越多,之前在

cmdDict.py

直接配置指定的命令不合适了,今天改了换成以下写法。使用生成器的特性来提升下小小的性能,因这之前我的老本家

php

也支持

yield

。那么今天就索引来修改下吧!顺便把

cmdDIct.py

改了名字

Config.py

是不是更好一些。
把之前的指令拿到具体的类里去实现。

def keyCommand():yield printC56currentBrStrategy.PrintBr()yield gtaskHelp.GtaskHelper()yield createTaskStrategy.CreateTask()yield switchBranch.SwitchBranch()yield editBrDesc.EditBrDesc()

在抽象类

AbstractCommandStrategy.py

添加方法

\"\"\"存入指令的实现方法\"\"\"@abstractmethoddef command(self):pass

由具体的子类去配置对应的

command

命令。比如

from . import commandStrategyclass PrintBr(commandStrategy.AbstractCommandStrategy):\"\"\"这里配置 指定的指令\"\"\"def command(self):return \"-b\"def cmd(self, args):super().printAllBr(args)def useage(self):print(self.command() + \"\\t打印出当前所有分支,列表出索引号和描述\")pass

第天争取走一小步

代码在GitHub

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » Python增强下git那长长的指令