Python的高级Git库 Gittle_python

Gittle是一个高级纯python git 库。构建在dulwich之上,提供了大部分的低层机制。

Install it

pip install gittle

Examples :

Clone a repository

from gittle import Gittle

repo_path = '/tmp/gittle_bare'
repo_url = 'git://github.com/FriendCode/gittle.git'

repo = Gittle.clone(repo_url, repo_path)

With authentication (see Authentication section for more information) :

auth = GittleAuth(pkey=key)
Gittle.clone(repo_url, repo_path, auth=auth)

Or clone bare repository (no working directory) :

repo = Gittle.clone(repo_url, repo_path, bare=True) 

Init repository from a path

repo = Gittle.init(path) 

Get repository information

# Get list of objects
repo.commits

# Get list of branches
repo.branches

# Get list of modified files (in current working directory)
repo.modified_files

# Get diff between latest commits
repo.diff('HEAD', 'HEAD~1')

Commit

# Stage single file
repo.stage('file.txt')

# Stage multiple files
repo.stage(['other1.txt', 'other2.txt'])

# Do the commit
repo.commit(name="Samy Pesse", email="samy@friendco.de", message="This is a commit")

Pull

repo = Gittle(repo_path, origin_uri=repo_url)

# Authentication with RSA private key
key_file = open('/Users/Me/keys/rsa/private_rsa')
repo.auth(pkey=key_file)

# Do pull
repo.pull()

Push

repo = Gittle(repo_path, origin_uri=repo_url)

# Authentication with RSA private key
key_file = open('/Users/Me/keys/rsa/private_rsa')
repo.auth(pkey=key_file)

# Do push
repo.push()

Authentication for remote operations

# With a key
key_file = open('/Users/Me/keys/rsa/private_rsa')
repo.auth(pkey=key_file)

# With username and password
repo.auth(username="your_name", password="your_password")

Branch

# Create branch off master
repo.create_branch('dev', 'master')

# Checkout the branch
repo.switch_branch('dev')

# Create an empty branch (like 'git checkout --orphan')
repo.create_orphan_branch('NewBranchName')

# Print a list of branches
print(repo.branches)

# Remove a branch
repo.remove_branch('dev')

# Print a list of branches
print(repo.branches)

Get file version

versions = repo.get_file_versions('gittle/gittle.py')
print("Found %d versions out of a total of %d commits" % (len(versions), repo.commit_count()))

Get list of modified files (in current working directory)

repo.modified_files 

Count number of commits

repo.commit_count 

Get information for commits

List commits :

# Get 20 first commits repo.commit_info(start=0, end=20) 

With a given commit :

commit = "a2105a0d528bf770021de874baf72ce36f6c3ccc" 

Diff with another commit :

old_commit = repo.get_previous_commit(commit, n=1)
print repo.diff(commit, old_commit)

Explore commit files using :

commit = "a2105a0d528bf770021de874baf72ce36f6c3ccc"

# Files tree
print repo.commit_tree(commit)

# List files in a subpath
print repo.commit_ls(commit, "testdir")

# Read a file
print repo.commit_file(commit, "testdir/test.txt")

Create a GIT server

from gittle import GitServer

# Read only
GitServer('/', 'localhost').serve_forever()

# Read/Write
GitServer('/', 'localhost', perm='rw').serve_forever()

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索python
, git
Gittle
python gittle、gitpython、python git、python git api、gitpython 教程,以便于您获取更多的相关知识。

时间: 2024-10-29 19:21:21

Python的高级Git库 Gittle_python的相关文章

git pull——git库版本与本地库版本冲突总结

git库版本与本地库版本冲突:个人定义为就是git库版本与本地库版本不匹配,详细地说就是我们从git库clone克隆下来的版本,经过修改后提交并合并成新版本,但是后来又将git库的该版本撤销了,而本地没有撤销该版本,此时就是本地库拥有此版本而git库中没有此版本.这样在使用git pull或git pull origin master可能会出现:"Your local changes to the following files would be overwritten by merge&quo

dll动态库-python 调用DLL 动态库之后 怎么释放

问题描述 python 调用DLL 动态库之后 怎么释放 各位大神,请问python 利用 ctypes调用DLL之后怎么释放啊 解决方案 不需要释放,CDLL析构中会自动释放

python安装-Python 在安装lxml库的时候 一直搞不定

问题描述 Python 在安装lxml库的时候 一直搞不定 各位哥哥 哥哥们,不知道这是什么原因,也不知道我是否安装成功了 lxml 我也下载了 setuptools-20.2.2 ,按步骤安装的,可是还是不行,请各位哥哥 哥哥们帮小弟解决一下吧~ 痛苦中-- 解决方案 你下载它的pip包 然后python 安装setup.py 看是否成功

利用Python中的mock库对Python代码进行模拟测试_python

 如何不靠耐心测试 通常,我们编写的软件会直接与那些我们称之为"肮脏的"服务交互.通俗地说,服务对我们的应用来说是至关重要的,它们之间的交互是我们设计好的,但这会带来我们不希望的副作用--就是那些在我们自己测试的时候不希望的功能. 比如,可能我们正在写一个社交软件并且想测试一下"发布到Facebook的功能",但是我们不希望每次运行测试集的时候都发布到Facebook上. Python的unittest库中有一个子包叫unittest.mock--或者你把它声明成一

Linux Kernel Git 库加入二步认证

Linux内核开发者以前向官方Git库直接递交代码是使用kernel.org发行的SSH私钥.SSH私钥比密码要安全,但也很容易落在恶意的人手中,比如工作站被入侵或者私钥被保存在安全不严的备份媒介中.Linux基金会现在宣布加强安全访问要求,引入二步认证.硬件令牌Yubikeys的开发商Yubico以折扣和捐赠的形式向所有kernel.org上有账号的内核开发者提供了硬件令牌Yubikeys.kernel.org曾在2011年遭到了黑客的入侵,网站因此关闭了近一个月.

Python的高级图像处理

构建图像搜索引擎并不是一件容易的任务.这里有几个概念.工具.想法和技术需要实现.主要的图像处理概念之一是逆图像查询reverse image querying(RIQ).Google.Cloudera.Sumo Logic 和 Birst 等公司在使用逆图像搜索中名列前茅.通过分析图像和使用数据挖掘 RIQ 提供了很好的洞察分析能力. 顶级公司与逆图像搜索 有很多顶级的技术公司使用 RIQ 来取得了不错的收益.例如:在 2014 年 Pinterest 第一次带来了视觉搜索.随后在 2015 年

python操作JIRA的库简单操作

因公司需要,我们开发的PRISM又需要和JIRA对接啦, 今天找了一个JIRA库撸了一发~~~ jira库地址: https://pypi.python.org/pypi/jira/1.0.3 简单操作指令:   from jira import JIRA jira = JIRA(server='http://jira.a.b.com.cn:8080', basic_auth='chengang', 'xxxxxxx')) projects = jira.projects() print pro

Python模块和标准库的使用教程

#!/usr/bin/env python # coding=utf-8 lang = "python" 引入模块 >>> import sys >>> sys.path.append("~/Documents/VBS/StartLearningPython/2code/pm.py") >>> import pm >>> pm.lang 'python' 当Python解释器读取了 .py 文件

Python中使用第三方库xlrd来写入Excel文件示例_python

继上一篇文章使用xlrd来读Excel之后,这一篇文章就来介绍下,如何来写Excel,写Excel我们需要使用第三方库xlwt,和xlrd一样,xlrd表示read xls,xlwt表示write xls,同样目前版本只支持97-03版本的Excel.xlwt下载:xlwt 0.7.4 安装xlwt 安装方式一样是python setup.py install就可以了,或者直接解压到你的工程目录中. API介绍 获取一个xls实例 复制代码 代码如下: xls = ExcelWrite.Work