`
scm002
  • 浏览: 317031 次
社区版块
存档分类
最新评论

Python的高级Git库 Gittle安装使用方法

 
阅读更多

本文为大家讲解的是Python的高级Git库 Gittle安装使用方法,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()

 

http://www.phperz.com/article/14/1001/26127.html

https://github.com/FriendCode/gittle

分享到:
评论

相关推荐

    Python的高级Git库 Gittle

    Gittle是一个高级纯python git 库。构建在dulwich之上,提供了大部分的低层机制。 Install it pip install gittle Examples : Clone a repository from gittle import Gittle repo_path = '/tmp/gittle_bare' repo_...

    Python-GitRepo代码贡献量分析脚本GitRepositoryMining

    这个脚本可能会用到Git的命令行工具或Python的Git库(如PyGit2或GitPython)来与Git仓库进行交互。 2. **Python编程**:作为主要的实现语言,Python以其简洁明了的语法和丰富的库资源,使得代码贡献量分析变得相对...

    Python-Git和Github秘籍

    在Python开发中,每个项目都可以创建一个Git仓库,通过`git init`命令初始化,然后使用`git add`添加文件,`git commit`进行提交,记录下代码的每次变动。 在团队合作中,`git branch`用于创建分支,`git checkout`...

    Python的Git开发包GitPython.zip

    GitPython 是一个 Python 库用来和 Git 资料库进行交互,提供各种级别的操作,例如高级的 git-porcelain 和低级的 git-plumbing. GitPython 提供了 Git 对象的抽象封装以简化数据的访问。 示例代码: from git ...

    python如何绑定git

    * 本地已经安装了 Python 和 Git,并且均可正常使用。 * 已经注册了 Git 账号。 * Git 网址:https://gitee.com/ Step 1: git 用户绑定邮箱 首先,需要将 Git 账号绑定到邮箱上。登录 Git 网站,按照以下步骤操作...

    基于Python的Git仓库统计分析工具设计源码

    该项目是基于Python的Git仓库统计分析工具设计源码,共计72个文件,其中包括34个Python脚本、7个MO文件、7个PO文件、5个文本文件、2个压缩文件、1个Git忽略文件、1个PyLint配置文件、1个INI配置文件、1个Markdown...

    Python-gitDiffTool是一个Git代码对比工具可以对Git项目的两个提交进行对比

    gitDiffTool 是一个Git代码对比工具,可以对Git项目的两个提交进行对比,对比结果将生成一份html报告。 你可以在生成的结果页中查看两次提交间代码的diff,结果页仅为单个html页面,左边栏是两次提交有改动的文件...

    Python-Klaus是一个使用Python开发的基于浏览器的Git仓库浏览器

    - **Git API**:通过Python的Git库,如`gitpython`或`PyGit2`,Klaus能够与Git仓库进行交互,获取文件、提交、分支等信息。 - **前端技术**:虽然Klaus是基于浏览器的,但其前端部分可能采用HTML、CSS和JavaScript,...

    python_git-源码.rar

    Python Git 库通常指的是 PyGit2,它是一个 Python 绑定库,提供了 Git C 库的接口。PyGit2 不是本文档所提及的“python_git”,但它们都旨在为 Python 开发者提供 Git 功能。本文档的“python_git”可能是另一个...

    廖雪峰javascript,python和git教程

    - Python是一种广泛使用的高级编程语言,以其清晰简洁的语法著称。 #### 安装Python - 解释器的安装,不同版本的Python解释器特点。 #### 第一个Python程序 - 使用文本编辑器创建并运行Python代码。 #### Python...

    Python-gitHub以及Git初次使用

    3. **PyPI发布**: 如果你的Python项目是可公开使用的库,可以通过GitHub Actions自动发布到Python包索引(PyPI)。 4. **持续集成(CI)/持续部署(CD)**: 结合GitHub和Jenkins、Travis CI等工具,实现Python项目...

    廖雪峰Python&Git&javascript教程离线版

    【标题】"廖雪峰Python&Git&JavaScript教程离线版"所涵盖的知识点非常广泛,包括了Python编程语言、Git版本控制工具以及JavaScript这三种在IT领域中至关重要的技术。接下来,我们将深入探讨这三个方面的内容。 **...

    django python taggit_python_django_

    下面,我们先来理解Django和Python的基础,然后详细介绍`taggit`的安装、配置以及使用方法。 Django是一个由Python编写的开源Web框架,它遵循“DRY”(Don't Repeat Yourself)原则,旨在提高开发效率并减少代码...

    莫烦 Python、Git、Linux 系列教程 2020.10.31.epub

    莫烦 Python、Git、Linux 系列教程 2020.10.31.epub

    极客Python之Git实用教程-Github教程

    鱼C出品,极客Python之Git实用教程 Github教程,讲述Github的使用。HTML格式文档。学习交流。

    JavaScript Python Git 教程.zip

    Python是一种高级编程语言,以其简洁明了的语法和强大的库生态系统而受到欢迎。在Web开发中,Python常用于后端开发,比如使用Django或Flask等框架。Python也适合数据分析、机器学习和科学计算,因为它有丰富的库如...

    Python库 | hg-git-0.2.5.tar.gz

    标题中的“Python库 | hg-git-0.2.5.tar.gz”表明这是一个针对Python的库,具体来说是hg-git库的0.2.5版本,它被打包成一个tar.gz格式的压缩文件。这种格式是Linux和Unix系统中常见的归档和压缩方式,通常用于在...

    GitHack-python3.zip

    之前下载了前辈们的GitHack工具发现竟然只能在python2运行,生为程序猿的我瞬间毛血旺了,因为自己装的是python3发现尽然用不了,超灵长类生物不能忍,我瞬间打开源码对键盘一顿咔咔咔胡打,最终成功在python3运行。...

    Python库 | git_versiointi-1.4-py3-none-any.whl

    本文将深入探讨这个库的特性和使用方法,以及如何在Python环境中安装和应用。 首先,让我们明确“git_versiointi”的含义。Git是一种分布式版本控制系统,广泛用于软件开发中的源代码管理。而“git_versiointi”这...

    Python库 | git-recipe-0.2.7.tar.gz

    在使用这个库之前,开发者首先需要将`git-recipe-0.2.7.tar.gz`文件解压缩,然后可以使用Python的`setup.py`脚本安装到本地环境,或者使用`pip`(Python的包管理器)直接从源码地址安装。安装完成后,通过`import ...

Global site tag (gtag.js) - Google Analytics