如何将git存储库从Windows移动到Ubuntu服务器?

时间:2014-11-03 06:11:44

标签: git gitweb

我在位于Windows系统的Ap​​ache http服务器中发布了几个git存储库。并且文件保存在同一台计算机中。现在我想将这些git存储库移动到另一台计算机,其中还有一个带有gitweb的Apache http服务器。通常我使用git clone http://username@ipaddress/git/repository_name将这些存储库克隆到其他本地计算机中。

但是当我直接将这些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存储库。然后在其他计算机中,我们可以使用git clone http://username@windows_ipaddress/git/test来克隆此存储库以进行开发。我们也可以使用git push/pull origin master来执行有关git的操作来更新或修改git存储库。

现在,我想将F:/gitroot中的这些存储库移动到操作系统为Ubuntu 12.04的另一台计算机中,并且还安装了apache服务器并使用gitweb进行配置,以便在Windows中进行http访问系统。我只是将F:/gitroot中的这些文件复制到Ubuntu计算机的/media/backup_data/gitroot中。这些git存储库的结构没有改变。

当我使用git clone http://username@ubuntu_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将成功执行。

1 个答案:

答案 0 :(得分:0)

我在原帖的UPDATE部分回答了这个问题。