Является ли "git ls-remote" операцией только для чтения?

Мы планируем использовать git ls-remote <repository> [<refs>…] без каких-либо дополнительных параметров одновременно с любой другой операцией Git. Я ищу подтверждение того, что ls-remote только для чтения, поэтому он не может прервать любую другую операцию.

1 ответ

Решение

Да, это операция только для чтения.

Ничто в встроенном / ls-remote.c не предлагает никаких действий, изменяющих локальное хранилище.

Он устанавливает в качестве транспорта TRANS_OPT_UPLOADPACK, который также используется в двух других командах git (которые не изменяют удаленное хранилище):

  • git clone (builtin/clone.c:919) а также
  • git fetch (builtin/fetch.c:807)

    /* The program to use on the remote side to send a pack */
    #define TRANS_OPT_UPLOADPACK "uploadpack"
    

Он просит удаленного репо посылать пакеты, не более того.

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