我想使用child_process从nodeJS进行git pull,commit和push-这是否可行?

var cmd = require('child_process');
var commmandString = "cd c:\\xampp\\htdocs\\MenuMakerServer\\experiments\\editormenu && git commit -am 'menu.json changes'    && git push origin main";

 cmd.exec(commmandString , function (error: any, stdout, stderr) {
        if (error) {
            callback(error.stack, null);
        }
    });

编辑:

好的,
我设法使它起作用:
var sys = require('sys')
var exec = require('child_process').exec;
function puts(error, stdout, stderr) { sys.puts(stdout) }

var options = {cwd:"c:\\xampp\\htdocs\\MenuMakerServer\\projects\\editormenu"};

exec("git status && git pull && git commit -am 'menu changed' && git push", options, puts);

最佳答案

不,那是行不通的……看起来您正在同时结合DOS shell命令和Unix shell命令。具体来说,c:\是DOS,使用&&链接命令是Unix shell。您正在使用哪个环境?

如果您使用的是DOS,则需要制作一个.bat并调用该批处理。很好,因为您可以使用参数。

10-05 20:59
查看更多