使用Gitweb发布多个Git仓库

3

我刚开始使用Git。构建和安装都很容易。然后我进入了我的一个Web项目目录,并向其添加了一个Git仓库。

$ cd ~/Sites/webapp
$ git init (and so on)

我还设置了gitweb,当我在gitweb.cgi的$projectroot设置中添加~/Sites/webapp时,在浏览器中访问http://localhost/gitweb/gitweb.cgi时,它出现了。
我的问题是--据我所知,git没有中央仓库的概念。我可能要处理的每个项目都有自己的git存储库。由于我的项目分布在硬盘上,它们各自的存储库也分布在硬盘上。如何将多个存储库添加到gitweb?是否有所有存储库的中央注册表?我真的应该重新调整工作方式,将所有项目移动到一个中央目录中吗?怎么做?
2个回答

5

迟到总比没有好吧。

我通过创建项目根目录并链接git存储库来解决了这个问题。

project_root="/opt/gitweb"

在/opt/gitweb中

ln -s ~/Sites/webapp webapp.git
ln -s ~/someotherplace/whereitis/application appliation.git

不确定我是否理解。我也想在一个gitweb服务下看到许多仓库。例如,/srv/audio/.git/config和/srv/bike/.git/config。我应该怎么做,而不是在/srv/bike和/srv/audio的每个文件夹中运行git instaweb -d apache2 --start?创建第三个文件夹,然后软链接什么?然后运行什么? - Marcos
1
我曾经使用过gitweb,但我猜你也可以使用instaweb:创建一个名为“/3rdfolder”的第三个文件夹,在该文件夹中执行“ln -s /srv/audio audio.git”,并为其他需要的存储库重复此操作。然后在“/3rdfolder”中启动instaweb。了解更多关于安装gitweb的信息。 - Peter van der Does

0

我通过创建一个空的存储库并链接到我想浏览的存储库来实现这一点。这种解决方法是必要的,因为instaweb以复杂的方式运行gitweb并设置项目根目录。

git init instaweb
cd instaweb
ln -s ~/projects/gitproj1 gitproj1
ln -s ~/projects/gitproj2 gitproj2
git instaweb --httpd webrick

服务器现在已经启动并运行,主页将列出一个 .git 项目(这是您刚初始化的空仓库),以及您链接到的两个实际项目。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接