如何执行' ls-remote --heads origin master'在python?

时间:2018-02-14 18:08:41

标签: python git

我的git repo中有一些基本的python脚本。 首先,我在我的仓库中测试了一些git命令:

$ git ls-remote --heads origin master
a5dd03655381fcxxxx4e759ceba7aeb6456 refs/heads/master

现在我想在Python中执行相同的命令:

 if subprocess.call(["git", "ls-remote --heads origin master"]):
        print("OK")
    else:
        print("Not OK")

输出结果为:

git: 'ls-remote --heads origin master' is not a git command. See 'git --help'.
OK

我错过了什么? 当我在我的python脚本中执行ls-remote时,它可以工作:

a5dd03655381fcxxxx4e759ceba7aeb6456 HEAD
a5dd03655381fcxxxx4e759ceba7aeb6456 refs/heads/master

(我知道if语句现在是'错误/无用')。

1 个答案:

答案 0 :(得分:4)

您需要将每个参数放在列表中的单独项目中。

import subprocess

if subprocess.call(["git", "ls-remote", "--heads", "origin", "master"]):
    print("OK")
else:
    print("Not OK")