Python使用GitPython操作Git版本库的方法


Posted in Python onFebruary 29, 2020

GitPython 是一个用于操作 Git 版本库的 python 包,它提供了一系列的对象模型(库 - Repo、树 - Tree、提交 - Commit等),用于操作版本库中的相应对象。

1、导包

from git import *

2、初始化git仓库

CURRENT_DIR = os.path.dirname(os.path.abspath(__file__))
empty_repo = Repo.init(os.path.join(CURRENT_DIR, 'bbs')) # bbs目录不存在则新建

3、如果git仓库已存在,直接获取

repo = Repo(os.path.join(CURRENT_DIR, 'bbs'))

4、获取当前远程库

repo.remotes # 获取当前有哪些远程库 = git remote -v命令,返回一个repo列表

5、新建远程库

# 新建远程库 = git remote add origin git_url, 返回Remote对象(<class 'git.remote.Remote'>)
origin = repo.create_remote('origin', git_url)

6、fetch

origin.fetch()

7、建立一个关联远程分支的本地分支,分三步

empty_repo.create_head('master', origin.refs.master) # create local branch "master" from remote "master"
empty_repo.heads.master.set_tracking_branch(origin.refs.master) # set local "master" to track remote "master
empty_repo.heads.master.checkout() # checkout local "master" to working tree

# 以上三步可以简化为一行代码
repo.create_head('master', origin.refs.master).set_tracking_branch(origin.refs.master).checkout() # 建立本地master分支,关联远程master分支,checkout

8、获取所有远程分支

origin.refs # 返回所有远程分支列表
 [<git.RemoteReference "refs/remotes/new_origin/develop">, <git.RemoteReference "refs/remotes/new_origin/master">]

9、获取所有本地分支(git.HEAD)和远程分支(git.RemoteReference)

repo.refs # 返回所有本地分支列表

10、获取本地heads

repo.heads # 返回Head列表

11、获取当前head指向

repo.head.reference

12、切换分支

a、本地存在此分支 repo.head.reference = repo.heads.develop b、本地不存在,需要从远程拉去 repo.create_head('master', origin.refs.master).set_tracking_branch(origin.refs.master).checkout()

总结

到此这篇关于Python使用GitPython操作Git版本库的方法的文章就介绍到这了,更多相关python操作git版本库内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python模拟enum枚举类型的方法小结
Apr 30 Python
python比较2个xml内容的方法
May 11 Python
Python多线程扫描端口代码示例
Feb 09 Python
Python解析并读取PDF文件内容的方法
May 08 Python
python自动查询12306余票并发送邮箱提醒脚本
May 21 Python
python 自定义对象的打印方法
Jan 12 Python
pytorch使用Variable实现线性回归
May 21 Python
python取均匀不重复的随机数方式
Nov 27 Python
详解pycharm连接不上mysql数据库的解决办法
Jan 10 Python
Python如何读取文件中图片格式
Jan 13 Python
Python之Sklearn使用入门教程
Feb 19 Python
Python 中的Sympy详细使用
Aug 07 Python
如何使用python代码操作git代码
Feb 29 #Python
使用 Python 遍历目录树的方法
Feb 29 #Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
Feb 29 #Python
在python3中实现查找数组中最接近与某值的元素操作
Feb 29 #Python
python pandas移动窗口函数rolling的用法
Feb 29 #Python
基于Python fminunc 的替代方法
Feb 29 #Python
浅谈SciPy中的optimize.minimize实现受限优化问题
Feb 29 #Python
You might like
第十一节--重载
2006/11/16 PHP
PHP Cookie的使用教程详解
2013/06/03 PHP
控制PHP的输出:缓存并压缩动态页面
2013/06/11 PHP
php使用Header函数,PHP_AUTH_PW和PHP_AUTH_USER做用户验证
2016/05/04 PHP
纯js和css实现渐变色包括静态渐变和动态渐变
2014/05/29 Javascript
JS实现让网页背景图片斜向移动的方法
2015/02/25 Javascript
Lab.js初次使用笔记
2015/02/28 Javascript
JavaScript中的getMilliseconds()方法使用详解
2015/06/10 Javascript
基于 Node.js 实现前后端分离
2016/04/23 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
vue-cli脚手架引入图片的几种方法总结
2018/03/13 Javascript
JavaScript函数IIFE使用详解
2019/10/21 Javascript
OpenLayers实现图层切换控件
2020/09/25 Javascript
python网络编程学习笔记(七):HTML和XHTML解析(HTMLParser、BeautifulSoup)
2014/06/09 Python
Python程序设计入门(5)类的使用简介
2014/06/16 Python
Python实现给qq邮箱发送邮件的方法
2015/05/28 Python
django使用图片延时加载引起后台404错误
2017/04/18 Python
通过实例解析Python调用json模块
2019/12/11 Python
在Pytorch中计算自己模型的FLOPs方式
2019/12/30 Python
python 获取字典特定值对应的键的实现
2020/09/29 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
pytorch 计算Parameter和FLOP的操作
2021/03/04 Python
AT&T Wireless:手机、无限数据计划和配件
2018/06/03 全球购物
在印度上传处方,在线订购药品:Medlife
2019/03/28 全球购物
入党申请书自我鉴定
2013/10/12 职场文书
财务管理专业推荐信
2013/11/19 职场文书
教师党员思想汇报
2014/01/06 职场文书
金融管理毕业生求职信
2014/03/03 职场文书
社区关爱留守儿童活动方案
2014/08/22 职场文书
离婚案件原告代理词
2015/05/23 职场文书
民间借贷被告代理词
2015/05/23 职场文书
小学秋季运动会通讯稿
2015/11/25 职场文书
小学班级管理心得体会
2016/01/07 职场文书
mysql字符串截取函数小结
2021/04/05 MySQL
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python