如何在Python中正确解析Git命令(`git log ...`)?

普拉纳斯

我想使用Python脚本获取上次将更改提交到特定文件的人员的电子邮件/path/to/file.py

听起来很简单,对吧?我只需要以某种方式解析以下内容

git log -n 1 --pretty=format:%ae -- /path/to/file.py

包装sh是我的首选。不幸的是,在Python中

import sh
print(str(sh.git.log('-n 1 --pretty=format:%ae -- /path/to/file.py')))
print(str(sh.git.log('-n', '1', '--pretty=format:%ae', '--', /path/to/file.py')))

都打印- (press RETURN)所以也许我弄乱了论点。

否则,将str(sh.git.status())正确返回On branch master ...,并且其他一些经过测试的命令将按预期工作。

如何解决呢?

星期二

- (press RETURN)输出听起来像它的东西通过寻呼机打印。

记住,每GIT中命令可能(取决于选项,参数,配置设置和其他环境的细节,如标准输入是否是一个tty)通过寻呼机运行它的输出。使用的寻呼机取决于您的个人配置。该寻呼机的行为取决于所使用的寻呼机和输入数据。

一个简单的解决方法是,即使配置和环境建议Git应该使用寻呼机,也要git --no-pager <git-command>告诉Git不要使用寻呼机。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章