Я опубликовал несколько репозиториев git на HTTP-сервере Apache, расположенном в системе Windows. И файлы сохраняются на одном компьютере. Теперь я хочу переместить эти репозитории git на другой компьютер, где есть также HTTP-сервер Apache с gitweb. Обычно я использую git clone http://[email protected]/git/repository_name
, чтобы клонировать эти репозитории на другие локальные машины.Как переместить репозитории git из Windows на сервер Ubuntu?
Но когда я прямо скопировал эти хранилища git в один каталог корней git, git clone
сообщит об одной ошибке около info/refs
.
Есть ли эффективные способы выполнения этой работы? Спасибо.
ОБНОВЛЕНО:
В компьютере Windows 7, я сохраню эти репозитории в F:/gitroot
каталоге. И в httpd.conf
, соответствующая конфигурация выглядит следующим образом:
SetEnv GIT_PROJECT_ROOT F:/gitroot
SetEnv GIT_HTTP_EXPORT_ALL
ScriptAlias /git/ "D:/Program Files/Git/libexec/git-core/git-http-backend.exe/"
<Directory "D:/Program Files/Git/libexec/git-core/">
Allow From All
</Directory>
<Directory "F:/gitroot">
Options All
AllowOverride None
Order Deny,Allow
Deny From All
Allow From 192.168.0.0/24
Allow From 127.0.0.1
Allow From All
</Directory>
<Location /git >
AuthType Basic
AuthName "Git repository"
AuthUserFile F:/gitroot/htpasswd
Require valid-user
</Location>
И для ясности, я делаю новый каталог с именем test
в F:/gitroot
, а затем перейти в test
каталог, git init --bare
, то мы могли бы инициализировать новый репозиторий , Затем на других компьютерах мы могли бы использовать git clone http://[email protected]_ipaddress/git/test
, чтобы клонировать этот репозиторий для разработки. Также мы могли бы использовать git push/pull origin master
для выполнения этих операций с git для обновления или модификации репозитория git.
Теперь я хочу переместить эти репозитории в F:/gitroot
на другой компьютер, где операционная система Ubuntu 12.04
, а также сервер apache установлен и настроен с помощью gitweb для доступа к http, как в системе Windows. Я просто копирую эти файлы в F:/gitroot
в /media/backup_data/gitroot
компьютер Ubuntu. Структура этих git-репозиториев не изменяется.
Когда я использую git clone http://[email protected]_ipaddress/git/test
, ошибка:
Cloning into 'test'...
fatal: http://192.168.0.2/git/test/info/refs not found: did you run git update-server-info on the server?
Наконец, я нашел ответ: мы должны изменить привилегии скопированного каталога.
sudo chown -R www-data:www-data test
Затем git clone
будет успешно выполнен.
Вы имеете в виду, что вы обычно используете 'git clone', но на этот раз только что сделал копию файловой системы gits? Пожалуйста, укажите полное сообщение об ошибке Git. –
@ MagnusBäck, спасибо, что ответили! Я нашел причины и обновил сообщение, пожалуйста, любезно проверьте его! – mining