git log over ssh удаленное хранилище

Я хочу создать браузер git (web), поэтому мне нужно перебирать коммиты (git log) в удаленном хранилище, которое находится на машине, подключенной по ssh. Мой репо довольно большой и постоянно меняется, поэтому мне будет интересно не получать изменения локально только для git log их.

Я пытался с:

git remote add origin ssh://example.net/repo
git checkout -b master --track origin/master

и это не удалось:\

Любые намеки, как это сделать?

6 ответов

Вы можете отправить журнал на веб-сервер, используя хук. На хосте репозитория создайте скрипт:

repo.git/hook/post-receive

где repo.git ваш путь к хранилищу Если кто-нибудь запустит этот репозиторий, будет запущен хук, и он может сбросить git log в файл и отправить его на веб-сервер через ssh.

Преимущество решения заключается в том, что любой, имеющий доступ к веб-серверу, не получит немедленный доступ к хранилищу.

На удаленной машине, cd в свой репозиторий и сделать git instaweb, Это запустит веб-сервер, к которому вы можете получить доступ, который будет содержать журналы и все другие вещи, которые обычно используются. git help instaweb для деталей.

Необходимость получить Git Log не всегда работает. - У меня большой репо, который я редко обновляю, поэтому я клонирую только тогда, когда мне нужно внести изменения. Но я бы хотел не отставать от изменений. - Я просто толкнул. Я хотел бы дважды проверить, что удаленное репо получило мои изменения. и у меня нет доступа по SSH, но у меня есть доступ GIT к машине.

Кажется очевидным, что:

GIT_DIR=node:/path/to/repo.git git log

должен работать для ограниченного набора переключателей git log.

Это одна из немногих дыр в git сегодня, ИМХО.

Причина, по которой вы получаете ошибку с указанными вами командами, заключается в том, что вам нужно запустить git fetch origin после добавления пульта для создания ветки удаленного слежения origin/master,

Вы можете попробовать запустить git log через ssh в cronjob:

ssh example.net git --git-dir=repo log > /tmp/repo.log

Таким образом, вам не нужно создавать локальную копию репозитория. Это предполагает, что у вас настроены ssh-ключи и вы чувствуете себя в безопасности с этой конфигурацией (кто-то, имеющий доступ к веб-серверу, может получить доступ к хранилищу).

Если вы хотели бы бежать git log локально вам нужно будет клонировать репозиторий (разве вы не пытались это сделать?):

git clone example.net/repo

Недостатком является то, что для его хранения на веб-сервере потребуется место, но при любом будущем извлечении будут загружаться только новые изменения, и они могут быть довольно быстрыми и зависеть от размера изменений:

cd repo
git pull

Вы могли бы сделать pull либо в crontab, либо даже запускать его с хоста репозитория с помощью ловушки, чтобы обновлять его только при необходимости

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