Могу ли я выдать git rev-parse в удаленном хранилище без локальной копии?

Мой локальный репозиторий git находится внутри зашифрованного тома. Я хотел бы иметь возможность бежать git pull --all только когда пульт имеет новые коммиты. Однако я не могу использовать перехват после получения, как здесь, так как у меня нет пароля к зашифрованному тому. Это означает, что даже если будет активирован перехват, я все еще не знаю пароль для монтирования тома и получения новых изменений. Поэтому я ищу другие альтернативы, один из возможных способов, о котором я подумал, - попросить у пульта последнюю версию SHA и сравнить ее с последней версией SHA, известной локальной копии, если они совпадают, мне не нужно запустить команду pull, и если они не совпадают, мне нужно выполнить команду git pull.

Есть ли способ, которым я могу бежать git rev-parse master в удаленном хранилище?

Вы можете получить больше информации о моей проблеме здесь

2 ответа

Решение

Вы не можете сделать это буквально.

Есть два простых приближения:

  • Если вы можете использовать ssh (или другой метод доступа) на пульте, вы можете запустить git rev-parse и даже git rev-list там, где вы получите столько SHA-1, сколько захотите.
  • Ты можешь использовать git ls-remote достать голову SHA-1s с пульта (в том числе refs/heads/master). Все, что вам скажут, это "одно и то же" или "другое", при условии, что у вас есть голова SHA-1 локально. Если они разные, вы не можете точно сказать, почему (хотя вы можете получить, вероятно, достаточно, если вы идете по местным оборотам).

Однако в этом вопросе есть что-то странное: вы говорите, что локальное хранилище находится в зашифрованном томе, к которому у вас нет пароля. Если это так, как вы узнаете, что такое местные руководители и / или их история? Они записаны в репо.

Есть ли причина, по которой ты не хочешь тянуть? если это из-за слияния, вовлеченного в вытягивание, вы всегда можете выдать git fetch получить заголовки и сохранить рабочую копию без изменений

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