如何知道是否从 terminal/command 行之外调用了 git 挂钩

How to know if a git hook is being called from not within the terminal/command line

我有一个 git 挂钩,每当有人提交到他们的本地存储库时,它就是 运行。

有些人从终端提交,有些人从 SourceTree 或 SmartGit 或其他一些第 3 方应用程序提交。

SourceTree 在涉及挂钩时表现不同。例如,默认情况下错误是红色的,并且似乎不支持用户输入所以我需要根据用户是否从 SourceTree 或 SmartGit 等提交来更改我的 python 脚本

有没有办法在我的脚本中做到这一点?

我能够使用此 python 代码解决问题。它只是检查环境变量是否出现任何第三方 git 客户端。我不知道它是否是最好的解决方案或者它是否会一直有效 - 但它现在满足我的需求。

is_terminal = True

for key in os.environ:
    if "SourceTree" in os.environ[key] or "SmartGit" in os.environ[key]:
        is_terminal = False
        break