如何用GitPython调用rev_list?代码报错求助
修复GitPython调用rev_list的错误
问题出在参数传递方式上:使用GitPython的repo.git调用Git命令时,不能将多个参数合并为单个字符串传入,必须把每个命令选项、参数拆分成独立的字符串元素。
你原代码里把--since="2024-01-01" master作为单个参数传给rev_list,导致Git将整个字符串识别为无效选项,从而抛出用法错误。
修改后的代码如下:
import git repo = git.repo.Repo('..') # 将参数拆分为独立字符串,无需额外添加引号 res = repo.git.rev_list('--since=2024-01-01', 'master').split('\n')
关键说明
- GitPython会自动处理参数的引号转义,因此参数值不需要额外加双引号,直接写
--since=2024-01-01即可。 - 命令的每个选项、分支/路径参数都要作为独立字符串传入,比如把
--since相关参数和分支名master拆分为两个参数。
修改后代码生成的Git命令会和你在命令行执行的一致,就能正常获取符合条件的提交哈希列表。
内容的提问来源于stack exchange,提问作者Dmitry
相关产品推荐
相关产品推荐

