在空提交的Python子进程调用期间更改未暂存

时间:2017-07-06 21:03:30

标签: python git subprocess git-commit git-add

在Python程序结束时我有:

subprocess.call(["git", "add", "."], shell=True)
subprocess.call(["git", "commit", "-m", "'{}'".format("commit message"), "--allow-empty"], shell=True)

除了提交消息之外,此提交与先前提交没有任何变化,因此--allow-empty

当我在我的存储库中运行git status时,我发现所有文件都没有进行提交(因此我无法重新定位)。

但是,如果我将这两行注释掉,再次运行程序,并在程序完成后手动运行shell:

git add .
git commit -m "commit message"

文件全部添加并提交,我能够成功重新建立。

即使在程序末尾添加另外两个子进程git addgit commit命令(有或没有--allow-empty),实际添加和提交文件的唯一方法是手动完成一个shell。

我在这里遗漏了什么吗?假设子进程假设与shell命令完全相同吗?

1 个答案:

答案 0 :(得分:0)

这对我有用,

p = subprocess.Popen(["git","commit","."],shell=True);
p.terminate();