【发布时间】:2019-09-21 02:04:20
【问题描述】:
我用 Python 写了一个很长的脚本,它在几个地方用 Python 子进程调用 git 并匹配 git 返回的内容,例如:
nothing to commit, working tree clean
fast-forwardable
up to date
一位同事使用该脚本,但其行为与预期不符,因为他们的 git 使用的是本地德语语言环境,并带有如下消息:
nichts zu committen, Arbeitsverzeichnis unverändert
我当时并没有想到这一点。可以看到here 和here 一些永久更改语言的想法。
当然,我不想更改运行我的脚本的 PC 上的设置,是否可以告诉 git 仅针对单个命令返回 en_US?
实际上,当我编写脚本时,我将系统设置为 en_GB,想知道我的 git 使用的是 en_GB 还是 en_US,是否有任何区别。是否可以要求 git 告诉你它使用的是什么语言?这是次要问题,但如果可以告诉 git 临时使用 en_US 就足够了。
【问题讨论】:
-
你试过this?
-
问题在于它涉及对正在运行的机器上的 .bashrc 文件执行某些操作,这不是“临时”更改。希望将某种 bash 命令添加到 git 命令中,该命令会覆盖 git 否则从 .bashrc 中拉出的任何内容
-
稳健的方法是使用管道或用于脚本的命令,例如不受用户配置影响的
git status --porcelain,而不是解析用于人类消费的消息。
标签: bash git subprocess