暂时更改git

时间:2019-05-02 14:09:58

标签: bash git subprocess

我用Python编写了一个很长的脚本,它在多个地方用python子进程调用git并匹配git返回的内容,例如:

nothing to commit, working tree clean
fast-forwardable
up to date

一个同事去使用该脚本,它的行为不像预期的那样,因为他们的git正在使用带有以下消息的本地德语语言环境:

nichts zu committen, Arbeitsverzeichnis unverändert

我当时没有想到。可以看到herehere的一些有关永久更改语言的想法。

我当然不想在运行脚本的PC上更改设置,是否可以告诉git仅在单个命令中返回en_US

实际上,当我编写脚本时,我将系统设置为en_GB,想知道我的git是否使用en_GBen_US,是否存在任何区别。是否可以要求git告诉您它使用的是哪种语言?但是,这是次要的问题,如果可以告诉git临时使用en_US就足够了。

4 个答案:

答案 0 :(得分:3)

实际上,您可以在Shell中的任何命令前加上任何变量设置,该设置仅适用于此命令,无论是git还是其他任何命令。只需键入它,然后用空格将其与您的命令分开:

$ LANG=fr_FR sh -c 'echo $LANG'
fr_FR
$ echo $LANG
en_us.UTF-8

但是,您可能要使用C,以确保对运行的命令使用默认语言:

$ LANG=C git

但是请记住,如果未使用所选语言,则可能无法使用所选语言。但是,通常应使用常规英语,因为通常它是用软件字符串编写的语言。

答案 1 :(得分:2)

尝试一行:

LANG=en_US git ...your command...

或为此bash会话:

export LANG=en_US

答案 2 :(得分:2)

git命令前加上所需的语言参考,以仅对该命令应用更改。

例如

默认(en_US.UTF-8

$ git status
fatal: Not a git repository (or any of the parent directories): .git

德语,

$ LANG=de_DE.UTF8 git status
fatal: Kein Git-Repository (oder irgendein Elternverzeichnis): .git

LANG格式:

<LANGUAGE>_<TERRITORY>.<CODESET>[@<MODIFIERS>]

答案 3 :(得分:2)

在脚本开头的某个位置设置LANG

#!/bin/sh

LANG=en_US
export LANG

该设置适用于当前shell(即脚本)以及从其中衍生出的子进程,包括git