通过Python提交对GIT的所有更改并捕获输出

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

标签: python git

我必须提出Python脚本来捕获对GIT的所有更改。该脚本将自动运行一天。

我想出了这个,但看起来并不令人满意。

atmosfera

输出是这样的

import os
import subprocess
from subprocess import *

accpath = 'M:/STD1/GIT_TEST'
print (accpath)
subprocess.Popen(["ls"],cwd = accpath)
subprocess.Popen(["git","init"],cwd = accpath)

subprocess.Popen(["git","add","."],cwd = accpath)
subprocess.Popen(["git","commit","-m","'committed'"],cwd = accpath)

p = subprocess.Popen(["git","log","-p","-1"], cwd = accpath, stdout = 
subprocess.PIPE,)
stdout_value = p.communicate()[0]
t1 = repr(stdout_value)

v = subprocess.Popen(["git","status"],cwd = accpath)
std_val = v.communicate()
print(std_val)

你们能帮助我吗? - 删除了2个文件但是没有提交更改。 - 我只是在寻找一个清晰的输出,可以作为报告(邮件)发送。

1 个答案:

答案 0 :(得分:0)

那是因为git add只会添加新文件或修改现有文件。要从树中暂存,您需要git rm,如状态所示(即使文件不在物理位置,也可以使用)。

正如错误所示,使用git commit -a将绕过此 - 它将提交所有修改和删除。但是,您仍然需要git add来添加新文件。所以只需改变:

subprocess.Popen(["git","commit","-a","-m","'committed'"],cwd = accpath)