Python git.Repo 获取commit信息

 在git中可以使用--pretty=format命令修饰日志:

# --pretty=format:"xxx"  自定义的输出格式
# --date="format:%Y%m%d" 自定义的日期格式
# -1  显示的commit次数
git log --pretty=format:"%h %cd %s" --date="format:%Y%m%d" -1

git log --pretty=format:"{\"id\": \"%h\", \"data\": \"%cd\", \"message\": \"%s\"}" --date="format:%Y%m%d" -1

常用的格式如下:

格式说明
%H输出commit id(完整)
%h输出commit id(前10位)
%s输出commit message(git commit -m "xxx"中的内容
%cd输出commit date(日期+时间)
date='format:%Y%m%d'

设置%cd的输出格式:

年份:%Y

月份:%m

天数:%d

小时:%H

分钟:%M

秒数:%S 

Python的git库对--pretty=format命令进行了封装:

import json
import git

# 获取commit信息 # {"commit":"abcde12345","date":"20230414","summary":"xxx"}
repo = git.Repo('/home/Project/test/src')
commit_dict = json.loads(repo.git.log('--pretty=format:{"commit":"%h", "date":"%cd", "summary":"%s"}', date='format:%Y%m%d', max_count=1))
print(commit_dict)

除此之外,也可以使用commit方法获取信息:

import json
import git

# 获取当前项目最后一次递交的commit信息
repo = git.Repo('/home/Project/test/src')
message = repo.commit().message
date = repo.commit().committed_datetime
date_str = datetime.datetime.strftime(date, '%Y%m%d')

# 获取指定id的commit信息
commit_id = 'abcde12345'
message = repo.commit(commit_id).message
date = repo.commit(commit_id).committed_datetime
date_str = datetime.datetime.strftime(date, '%Y%m%d')

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值