3

我尝试按照有关如何使用gitosis管理我的git项目的说明进行操作。除了一个小问题,我已经成功安装了gitosis

当我尝试创建我的第一个 git 项目时出现问题(在通过 gitosis 设置和配置项目之后)。推送到远程 git 存储库时出现以下错误:

致命:'/home/git/repositories/idea-generator.git' 似乎不是 git 存储库
致命:远端意外挂断

这些是我正在运行以安装 gitosis 并从头到尾推送我的第一个项目的命令序列。我正在对同一台服务器运行这些命令。现在我的开发机器是中央 git repo,但在某些时候将成为一个独立的服务器,专门用于容纳 git 和其他一些项目。

操作系统:Ubuntu 10.04 git:1.7.0.4 python:2.6.5

cd /home/rdn/projects
git clone git://eagain.net/gitosis.git
cd gitosis
须藤 python setup.py 安装
sudo adduser --system --shell /bin/sh --gecos 'git 版本控制' --group --disabled-password --home /home/git git

sudo -H -u git gitosis-init < /home/rdn/.ssh/id_rsa.pub
sudo chmod 755 /home/git/repositories/gitosis-admin.git/hooks/post-update
光盘..

# 此时我无法使用指示的 'git clone git@Frankenstein:gitosis-admin.git',因为它抱怨“致命:'gitosis-admin.git' 似乎不是 git 存储库”
git clone git@Frankenstein:/home/git/repositories/gitosis-admin.git
cd gitosis-admin
gedit gitosis.conf
# 将以下条目添加到 ../gitosis-admin/gitosis.conf
# [gitosis]
# 日志级别 = 调试
# 存储库 = /home/git/repositories
#
# [组 gitosis-admin]
# 可写 = gitosis-admin
# 成员 = rdn@Frankenstein
#
# [组创意生成器]
# 可写 = 想法生成器
# 成员 = rdn@Frankenstein

git commit -a -m "创建第一个仓库"
git 推送
光盘..

rails 新创意生成器
cd 创意生成器
混帐初始化
git remote add main_project git@Frankenstein:/home/git/repositories/idea-generator.git
混帐添加。
git commit -a -m "初始项目创建"
git push main_project master:refs/heads/master

更新

我能够“解决”这个问题的唯一方法是登录远程服务器并创建远程存储库,如下所示:

作为 gitosis 存储库位置中的 git 用户创建一个远程裸项目:

git:~ cd /home/git/repositories
git:~ mkdir idea-generator.git
git:~ cd myapp.git
git:~ git --bare init

作为提交者用户(在我的例子中是 rdn),提交并推送新创建的项目

rdn:~ cd /home/rdn/projects/idea-generator
rdn:~ git init
rdn:~ git remote add main_project git@Frankenstein:/home/git/repositories/idea-generator.git
rdn:~ git add .
rdn:~ git commit -a -m "初始项目创建"
rdn:~ git push main_project master:refs/heads/master

我读过的所有教程和文档都忽略了这一重要步骤。也许在其他发行版上,这一步不是必需的,但在我的情况下,我发现它是必要的。希望有人能够回答这个最初的问题并确定需要更改哪些步骤才能使原始教程在 Ubuntu 10.04 下工作。

4

2 回答 2

1

如果您能够使用完整路径(/home/git/repositories/idea-generator.git)获取/推送存储库,那么您完全绕过了 gitosis,包括它可能施加的任何访问检查。你最好不要使用 gitosis,因为它对你有好处。

这也是推送没有为您自动创建 repo 的原因—— gitosis 被绕过了,所以没有自动创建。

正确使用 gitosis 意味着你的 URL 看起来像 git@Frankenstein:gitosis-admin.git (因为你说你成功地克隆了它)。

于 2010-08-17T07:04:30.810 回答
0

我刚刚成功运行了教程。我的服务器是运行 ubuntu 10.4 的“valkyrie”,而我的客户端“wraith”是 OS X 10.6.1。确保您使用的是您的客户端 rsa/dsa 密钥,而不是您的服务器的。这是我的例子:

echo "ssh-rsa AAAAB3NzaC1yc2EAAAABIw...== mwilliamson@wraith" | sudo -H -u git gitosis-init
于 2010-08-08T05:27:32.417 回答