当前位置: 首页 > 编程笔记 >

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

田普松
2023-03-14
本文向大家介绍Python使用GitPython操作Git版本库的方法,包括了Python使用GitPython操作Git版本库的方法的使用技巧和注意事项,需要的朋友参考一下

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版本的操作方法的使用技巧和注意事项,需要的朋友参考一下 最近在下载tensorflow的时候出现了如下图所示的情况:Could not find a version that satisfies the requirement tensorflow 经过一番查找资料,发现,原来在2019年,TensorFlow还不支持python

  • 本文向大家介绍python版本的读写锁操作方法,包括了python版本的读写锁操作方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了python版本的读写锁操作方法。分享给大家供大家参考,具体如下: 最近要用到读写锁的机制,但是python2.7的自带库里居然木有. 网上讲读写锁的例子众多,但是原理简单,代码明晰的却不多见, 索性自己写个. 读写锁一般用于多个读者,1个或多个写者同时访问

  • 3.2.1. 强制推送 细心的读者可能从图3-4已经看出,显示的提交者并非gotgithub用户,而是一个名为ossxp-com的用户,这是因为GitHub是通过提交中的邮件地址来对应到GitHub用户的。看看提交说明: $ git log --pretty=fuller commit 92dee9b8125afc9a606394ed463f9f264f2d3d58 Author: Jia

  • 主要内容:Git是什么?,安装Git,玩转Git命令行,7.本节小节Git是什么? 一个分布式版本控制系统,和SVN类似,但远比SVN强大的一个版本控制系统 ①Git可以方便的在本地进行版本管理,如同你本地有一个版本管理服务器一样 我们可以选择在合适的时间将本地版本推送到统一的版本管理服务器 ②Git每次会提取整个代码仓库的完整镜像,相当于对整个代码仓库都进行了一次备份,这样计时版本服务器除了问题,我们可以直接采用本地仓库恢复!结合本地版本管理功能,远程版本管理服

  • 本文向大家介绍Python操作MongoDB数据库PyMongo库使用方法,包括了Python操作MongoDB数据库PyMongo库使用方法的使用技巧和注意事项,需要的朋友参考一下 引用PyMongo 创建连接Connection 或 创建Connection时,指定host及port参数 连接数据库 或   连接聚集 或   查看全部聚集名称   查看聚集的一条记录   查看聚集的字段   查

  • 本文向大家介绍C#/.NET使用git命令行来操作git仓库的方法示例,包括了C#/.NET使用git命令行来操作git仓库的方法示例的使用技巧和注意事项,需要的朋友参考一下 我们可以在命令行中操作 git,但是作为一名程序员,如果在大量重复的时候还手动敲命令行,那就太笨了。 本文介绍使用 C# 编写一个 .NET 程序来自动化地使用 git 命令行来操作 git 仓库。 这是一篇很基础的入门文章