Gitpython实战(第一弹)

坑坑洼洼的代码路

Gitpython实战(第一弹 checkout&pull)


前言

作者风格:通俗易懂,幽默风趣,志在为构建和谐社会主义奉献力量 --- from 作者同桌

本文旨在以工作中实战的经验讲述gitpython的应用案例,语言简单粗暴,请知悉!


一、gitpython环境配置(Windows)

1.在线安装

方式一:如果老板们身处外网环境,且网络环境自由的话可直接在pycharm自行下载
步骤:pycharm路径:File->Setting->搜索Python Interpreter->所有可以通过+号进行安装,如下图(为防止小仙女小帅哥们对pycharm不熟悉,下图已标记具体位置及操作顺序啦):
在这里插入图片描述
方式二:通过pip安装
步骤:打开提示符界面->输入:pip3 install gitpython

作者本人工作环境由于产品特性,身处内网环境且无yum源,只能通过离线方式安装,呜呜呜~~~

2.离线安装

方式一:通过pip安装(非复制错误哈,通过pip也可以本地安装)
步骤:
1、在PyPi官网下载gitpython及其依赖包:gitdbgitpythonsmmaptyping_extensions(可以是whl包,也可以是tar包)
各位注意自己本地python版本与下载包版本是否适配,举例如下图:
在这里插入图片描述
2、whl包安装
找到whl包路径,选中后直接输入cmd(即可进入对应目录控制命令符界面)-> 执行python -m pip install xxx.whl
在这里插入图片描述
3、tar包安装(本人强推,省心)
解压zip包->进入文件夹后找到setup.py文件->执行python setup.py
[此处也可以将解压缩后的包直接放到pycharm工程中,在Terminal界面进行setup安装]

二、需求分析

对比同一分支不同版本的代码,具体修改内容,修改代码行数。本篇文章为该需求的第一步根据使用者需求checkout分支:
1、本地库已clone,无需检查或clone库
2、用户可指定checkout分支
3、检查用户分支是否拉取过,是则无需进行重新创建本地分支
4、checkout实现
5、分支切换后进行pull

三、代码实现

1.引入库

代码如下(示例):

import os
from git.repo import Repo

2.checkout分支&pull

代码如下(示例):

def git_branch_checkout(local_code_path,checkout_branch):

	"""
	description:
	is_from_origin:是否为新拉取远端分支
	local_code_path:目标库.git所在路径
	checkout_branch:目标checkout分支
	"""
	# 获取当前分支
	repo = Repo(local_code_path,search_parent_directories=True)
	git = repo.git
	active_branch = repo.active_branch
	# 'origin/xxx/xxx/'为远端分支路径头,由各项目自行定义
	origin_branch_path = r'origin/xxx/xxx/' + checkout_branch
	print('当前分支为:',str(active_branch))
	print('目标分支为:',checkout_branch)
	
	# 判断本地是否已存在该分支
	is_from_origin = checkout_branch not in repo.branches
	print('本地是否已存在目标分支:',is_from_origin )

	# 拉取代码,获取远端更新
	git.pull()
	
	# 切换分支
	if str(active_branch)!= checkout_branch:
		if is_from_origin:
			git.checkout('-b',checkout_branch,origin_branch_path)
		else:
			git.checkout(checkout_branch)
	else:
		print('当前分支即为目标拉取分支,无需重复checkout')
	active_branch = repo.active_branch
	print('切换后分支为:',active_branch)
	
	# 再次拉取代码,获取更新
	git.pull()
	

后续直接调用该方法即可。


总结

文本为作者第一次接触gitpython的使用经验,欢迎萌新及大佬不吝赐教!

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值