Как узнать в ответе процесса C#, привел ли git rebase к конфликту или успешно

Я запускаю команды git, используя Process от cmd.exe, все работает нормально, теперь я пытаюсь перебазировать ветку и хочу знать, прошла ли перебазировка успешно, а затем хочу запустить git push как следующий шаг.

Есть ли способ узнать, удалось ли git rebase без конфликтов из ответного сообщения Process?

Потому что, когда он добился успеха, он дает такой ответ Successfully rebased and updated refs/heads/qa.

Я проверил этот вопрос. Есть ли что-то вроде "git rebase --dry-run", которое заранее уведомляет меня о конфликтах?

В ответе указано, что если это ненулевой ответ, это означает, что он не был успешным, но rebase не дает ответа в этом формате 0/1, он возвращает текст.

Мой код это

ProcessStartInfo procStartInfo = new ProcessStartInfo("cmd", "/c git rebase master");
procStartInfo.FileName = "cmd.exe";
procStartInfo.RedirectStandardOutput = true;
procStartInfo.UseShellExecute = false;
procStartInfo.CreateNoWindow = true;

Process proc = new Process();
proc.StartInfo = procStartInfo;
proc.Start();

proc.WaitForExit();

// What should I check here to make sure rebase happened without conflicts
var response = await proc.StandardOutput.ReadToEndAsync();

1 ответ

Я думаю, вам нужно проверить свойство Process.ExitCode. В большинстве случаев в случае ошибки код будет отличным от нуля. Думаю, git не исключение.

Другие вопросы по тегам