前言:我觉得一些基本条件还是要具备的,比如确保你安装的git已经添加到了windows环境变量。如果你是linux,自行修正代码。
1、设置git用户名和邮箱【可跳过】
//2>&1 是为了把错误或者执行结果存入变量中system('git config user.email "a@b.com" 2>&1', $a);system('git config user.name "贤大" 2>&1', $b);
2、查看本地发现修改的文件
//git statuschdir('项目目录');exec("git status", $data);var_dump($data);
3、分析第2步返回的结果,取需要的文件暂存,最后再提交所选的文件
foreach ($data as $dat) {//......分析代码$file = '';exec("git add $file", $info); //$info里面返回暂存信息}}$commitStr = 'git commit ' . '你暂存的所有文件,用,分隔开' . ' -m "提交说明';exec($commitStr);
4、代码push到线上
system('git push origin master 2>&1', $d);//输出$d,你会发现报错,如果你和我一样,用的是ssh方式连接git服务器,请像我一样设置
//输出$d,你会发现报错,如果你和我一样,用的是ssh方式连接git服务器,请像我一样设置
system('git config core.sshCommand "ssh -i ~/.ssh/id_rsa " 2>&1', $c);var_dump($c);system('git push origin master 2>&1', $d);//一定要打印$c内容
But:在windows上,PHP访问的~并不是你当前登录的电脑用户的目录
打印$c的内容,他会提示你文件不存在,你只需要把用户目录下的id_rsa私钥复制你正确的目录就可以了。
一般在C盘\windows\system32下面:
当git采用这个本地的密钥去连接的时候,就成功了。
如果你不懂git ssh key配置,可以参考我网上随便找的这篇文章:
https://blog.csdn.net/lqlqlq007/article/details/78983879
