小编Fja*_*gur的帖子

即使没有错误,Python子进程git checkout也会返回错误

我正在编写一个脚本来自动执行一些GIT任务.我知道GITPython但我更喜欢不使用它.即使是艰难也可能更容易.

我得到了以下代码:

def executeCommand(cmd):
    p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE)
    out, error = p.communicate()
    if not error:
        return out.strip()
    else:
        print repr(out)
        print repr(error)
        print "Stopping execution!\r"
        exit(0)
Run Code Online (Sandbox Code Playgroud)

给出命令的这段代码['git', 'checkout', 'master']确实检查了主人.但它会停止执行,显然是因为错误变量不为空.我试图在错误上打印输出,如下所示:

"Your branch is up-to-date with 'origin/master'.\n"
"Switched to branch 'master'\n"
Stopping execution!
Run Code Online (Sandbox Code Playgroud)

如您所见,它成功检查了主分支(也通过验证git status).但为什么第二行填入错误变量?怎么办呢?或者没有办法正确处理这个?或者我不应该做任何错误检查?对此最好的解决方案/解释是什么?

谢谢!

python git subprocess

1
推荐指数
1
解决办法
746
查看次数

标签 统计

git ×1

python ×1

subprocess ×1