python模块之Git模块使用

#!/usr/bin/python
# coding:utf8
# @Author: liaojiaf@chanjet.com
# @Time: 3/17/20 4:04 PM
# @Site: 
# @File: git_handle.py
# @IDE: PyCharm

from git import Git,Repo
import time


class git_handler(object):
    def __init__(self,dest_dir):
        self.repo = Repo(dest_dir)

    def git_add(self,add_file="*"):
        try:
            index = self.repo.index
            if not isinstance(add_file,list):
                add_file = [add_file,]
            if index.add(add_file):
                return True
        except:
            return False


    def git_remove(self,del_file):
        index  = self.repo.index
        if not isinstance(del_file,list):
            del_file = [del_file,]
        index.remove(del_file)


    def git_commit(self,user, information):
        #time.sleep(2)
        try:
            index = self.repo.index
            if index.commit('"{}", "{}"'.format(user, information)):
                return True
        except:
            return False


    def git_push(self,):
        # time.sleep(2)
        try:
            if self.repo.remote().push():
                return True
        except:
            return False


    def git_pull(self,dest_dir):
        try:
            remote = self.repo.remote()
            if remote.pull():
                return True
            else:
                return False
        except:
            return False


    def git_clean(self,):
        try:
            self.repo.git.add('.')
            self.repo.git.stash()
            self.repo.git.stash('drop')
            return True
        except:
            return False
posted @   温柔易淡  阅读(1097)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示