2014-11-03 5 views
0

Я опубликовал несколько репозиториев 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 будет успешно выполнен.

+0

Вы имеете в виду, что вы обычно используете 'git clone', но на этот раз только что сделал копию файловой системы gits? Пожалуйста, укажите полное сообщение об ошибке Git. –

+0

@ MagnusBäck, спасибо, что ответили! Я нашел причины и обновил сообщение, пожалуйста, любезно проверьте его! – mining

ответ

0

Я ответил на этот вопрос в разделе UPDATE оригинального сообщения.

Смежные вопросы