Вызов системных команд из node.js и отображение их результатов

Пытаюсь отдать через gulp команды в системную консоль:

  const { exec } = require("child_process");
  var git_commant = "cd django-hamlpy & git add . & git commit -m \""+ desc +"\" & git push";

  exec(git_commant, (error, stdout, stderr) => {
    if (error) {
        console.log(`error: ${error.message}`);
        return;
    }
    if (stderr) {
        console.log(`stderr: ${stderr}`);
        return;
    }
    console.log(`stdout: ${stdout}`);
  });  

В целом вроде работает. Но почему-то сообщения у меня отображаются в stderr. Почему так?

введите сюда описание изображения

А так же само сообщение обрезается. Обычно при удачном выполенении таких команд в консоли вывод такой:

Enumerating objects: 35, done.
Counting objects: 100% (35/35), done.
Delta compression using up to 4 threads
Compressing objects: 100% (19/19), done.
Writing objects: 100% (22/22), 3.74 KiB | 273.00 KiB/s, done.
Total 22 (delta 11), reused 0 (delta 0)
remote: Resolving deltas: 100% (11/11), completed with 11 local objects.
To https://github.com/Sanshain/django_hamlpy.git
   9629024..8c0deab  master -> master

Ответы (1 шт):

Автор решения: PonyCoder

Сообщения отображаются в stderr потому что их и отправили в stderr. В вашем случае это делает "Git".

И обрезаются сообщения тоже из-за него. При клонировании репозитория он динамически отрисовывает в консоль нечто вроде прогресс-бара, в результате чего поток много раз очищается вместе со всеми сообщениями

→ Ссылка