在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 add
和git commit
命令(有或没有--allow-empty
),实际添加和提交文件的唯一方法是手动完成一个shell。
我在这里遗漏了什么吗?假设子进程假设与shell命令完全相同吗?
答案 0 :(得分:0)
这对我有用,
p = subprocess.Popen(["git","commit","."],shell=True);
p.terminate();