Python增强下git那长长的指令
场景
现如今有点规模的公司都使用GitFlow模式进行分支管理、虽然插件给我们带来了非常大的方便,但切换分支、找分支、起分支还是那么的麻烦
需求
在社会主次国家,每个生活在底层的劳动人民,他们默默的工作着,各种996、多线程的工作着
beta
dev
develop
effectiveJava
feature/20210712-reviewOpenApi
feature/20210727-tapd-1003358
feature/20210824-tapd-1004652
feature/20210909-tapd-1005586
feature/20210913-tapd-1005758
hotfix/20210915-fix-gainPointForGiftCard
master
* 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 version
git 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 printCurrentBrStrategy.PrintBr()
yield gtaskHelp.GtaskHelper()
yield createTaskStrategy.CreateTask()
yield switchBranch.SwitchBranch()
yield editBrDesc.EditBrDesc()
在抽象类AbstractCommandStrategy.py
添加方法
"""
存入指令的实现方法
"""
@abstractmethod
def command(self):
pass
由具体的子类去配置对应的command
命令。比如
from . import commandStrategy
class PrintBr(commandStrategy.AbstractCommandStrategy):
"""
这里配置 指定的指令
"""
def command(self):
return "-b"
def cmd(self, args):
super().printAllBr(args)
def useage(self):
print(self.command() + "\t打印出当前所有分支,列表出索引号和描述")
pass
第天争取走一小步
代码在GitHub
Python增强下git那长长的指令的更多相关文章
- Ubuntu下git的安装与使用
Ubuntu下git的安装与使用 Ubuntu下git的安装与使用与Windows下的大致相同,只不过个人感觉在Ubuntu下使用git更方便. 首先,确认你的系统是否已安装git,可以通过git指令 ...
- linux下git的安装和使用(转)
转自:http://www.cnblogs.com/sunada2005/archive/2013/06/06/3121098.html 最近在使用github,感觉不错.在windows下,可使用g ...
- 常见压缩格式分析,及 Linux 下的压缩相关指令
可先浏览加粗部分 一.常见压缩档 *.zip | zip 程式壓縮打包的檔案: (很常见,但是因为不包含文件名编码信息,跨平台可能会乱码) *.rar | winrar 程序压缩打包的档案:(在win ...
- [转载]Ubuntu下Git服务器安装与配置
原文地址:Ubuntu下Git服务器安装与配置作者:F民抄 1. 安装 1.1 安装Git-Core: sudo apt-get install git-core 1.2 安装 Gitosis sud ...
- Linux下git安装配置
一.Linux下git安装配置 2013-07-28 20:32:10| 分类: 默认分类 | 标签:linux git server |举报|字号 订阅 http://abomby ...
- Python+Pytest+Allure+Git+Jenkins接口自动化框架
Python+Pytest+Allure+Git+Jenkins接口自动化框架 一.接口基础 接口测试是对系统和组件之间的接口进行测试,主要是效验数据的交换,传递和控制管理过程,以及相互逻辑依赖关系. ...
- 安全防范:nginx下git引发的隐私泄露问题
安全防范:nginx下git引发的隐私泄露问题 1 安全事件 最近阿里云服务器后台管理系统中收到一条安全提示消息,系统配置信息泄露: http://my.domain.com/.git/confi ...
- 聊下git pull --rebase
有一种场景是经常发生的. 大家都基于develop拉出分支进行并行开发,这里的分支可能是多到数十个.然后彼此在进行自己的逻辑编写,时间可能需要几天或者几周.在这期间你可能需要时不时的需要pull下远程 ...
- 聊下 git rebase -i
在使用git作为源代码管理工具的时候,开发的时经常会面临一个常见的问题,多个commit 需要合并为一个完整的commit提交. 在一个基本的迭代周期里,你会有很多次commit,有跟配置文件相关的, ...
随机推荐
- Docker入门第三章
配置阿里云镜像加速器 1.首先打开阿里云,搜索容器镜像服务,打开如下 2.配置镜像加速器 sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.j ...
- .jsp文件的使用和理解以及一些小练习和Listener监听器
什么是 jsp,它有什么用? jsp 的全换是 java server pages.Java 的服务器页面.jsp 的主要作用是代替 Servlet 程序回传 html 页面的数据.因为 Servle ...
- Build Web Server with Apache and Passenger
Follow the instructions at 2.6. Generic installation, upgrade and downgrade method: via tarball of P ...
- MySQL-18-MHA+Atlas读写分离架构
Atlas介绍 Atlas是由Qihoo 360 Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目 它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了 ...
- DVWA(三):SQL injection 全等级SQL注入
(本文不定期更新) 一.所需环境: 1.DVWA 2.web环境 phpstudy/wamp 3.burp suite 二.SQL注入产生的原因: 程序员在编写代码的时候,没有对用户输入数据的合法性进 ...
- STM32—TIMx输出PWM信号驱动MG996R舵机
文章目录 一.前言 二.MG996R舵机简介 三.TIM定时器简介 四.通用定时器TIMx 1.TIMx主要功能 2.TIMx框图 3.计数单元 4.时钟选择 5.输出比较PWM 五.TIM3输出双路 ...
- 整理自己部署项目需要使用的Linux命令
1.修改文件名: mv test test 12.创建test文件夹: mkdir test3.解压文件至 test文件夹下: unzip test.war -d test/4.将work文件移动至 ...
- noip19
sb\(O(n^{2})\)传参 T1 暴力一会儿就码好,结果.. 祭奠一下死去的代码 died #include<cstdio> #define MAX 1010 #define re ...
- NOIP 模拟 $11\; \rm biology$
题解 首先对 \(a\) 离散化,则可推出转移方程 \[dp_{i,j}=\max\{{dp_{{i^{'}},{j^{'}}}+|i-i^{'}|+|j-j^{'}|}\}+b_{i,j} \;\; ...
- 小白5分钟创建WPF
创建WPF应用程序 基于生产这里选择.Net Framework进行开发 添加控件 由于不熟悉 高效点 我们这里直接拖拽控件 如果你有一点前端基础 你可以在控件对应Code 根据属性 对控件进行设置 ...