Могу ли я выдать 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
получить заголовки и сохранить рабочую копию без изменений