git log over ssh удаленное хранилище - PullRequest
1 голос
/ 03 августа 2011

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

Я пробовал с:

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

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

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

Ответы [ 6 ]

2 голосов
/ 04 августа 2011

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

repo.git/hook/post-receive

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

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

0 голосов
/ 04 ноября 2011

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

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

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

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

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

0 голосов
/ 31 августа 2011

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

0 голосов
/ 05 августа 2011

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

git clone example.net/repo

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

cd repo
git pull

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

0 голосов
/ 05 августа 2011

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

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

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

0 голосов
/ 03 августа 2011

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

...