Как получить git, производящий вывод в файл?

есть CrossOver. это вилка вина, хорошо протестированная и поддерживаемая, но не бесплатная https://www.codeweavers.com/products/crossover-linux/.

, в противном случае у вас есть решения VM (virtualbox, vmware ...) но не то же самое, что вино

1
задан 24 December 2017 в 02:55

1 ответ

git clone использует stderr для вывода, поэтому просто напишите это в файл:

git clone https://github.com/someRepository 2>git_clone.file

В качестве альтернативы вы можете перенаправить оба stdout и stderr - это не обязательно в этом в частности, но таким образом вы убедитесь, что , что вывод , выданный командой, перенаправляется:

git clone https://github.com/someRepository &>git_clone.file

В случае git clone очевидно, что есть другой выход, если вы перенаправляете его, вся информация о прогрессе, проходящая через терминал, не включается в выходной файл. Это по дизайну и IIRC, вы не можете легко изменить это поведение напрямую, однако если вам нужен вывод в другом скрипте, вы можете очень хорошо его перенести в него, что отлично работает и дает вам весь вывод:

git clone https://github.com/someRepository | cat

Внутри вашего скрипта вы можете получить stdin с -, например cat -, чтобы напечатать stdin - stdout - см. здесь больше: Как написать скрипт, который принимает входные данные из файла или из stdin? и как читать из файла или stdin в Bash?. [! ​​d8]

0
ответ дан 22 May 2018 в 15:57
  • 1
    Оба дали мне только первую строку: tail git_clone.file - & gt; [F2] – derHugo 24 December 2017 в 00:20
  • 2
    В качестве примера я поставил свой скрипт на gitsts.github.com. (см. СПРАВОЧНАЯ ИНФОРМАЦИЯ Я добавил к моему вопросу) – derHugo 24 December 2017 в 00:56
  • 3
    Хм, я не понимаю тебя на 100%, но я думаю, что это все та же проблема и с трубой. Я пробовал теперь git clone XYZ |& tee git_clone.file, но я получаю то же самое "oneliner" результат. Я также попробовал git clone -v ..., и это создает несколько строк, но «интересная часть» еще не написано. Поскольку сценарий будет в большинстве случаев быть занятым загрузкой или загрузкой материала во время git ofcourse, было бы очень важно показать прогрессную панель в те времена. Я после этого, как через 3 недели, теперь ^^ – derHugo 24 December 2017 в 01:32
  • 4
    Большое спасибо за ваше время и усилия! Я только нашел решение (см. Мой ответ). Во всяком случае, я бы не понял этого, не зная, что мне все равно нужно получить stderr, так как git записывает на него вместо stdout – derHugo 24 December 2017 в 01:44
  • 5
    теперь нормально? ;) – derHugo 24 December 2017 в 02:00

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

Похожие вопросы: