GitWeb

2023-11-09

本文转载至:http://www.gitchina.org/getting-started/pro-git/gitweb.html

现在我们的项目已经有了可读可写和只读的连接方式,不过如果能有一个简单的 web 界面访问就更好了。Git 自带一个叫做 GitWeb 的 CGI 脚本,运行效果可以到 http://git.kernel.org 这样的站点体验下(见图 4-1)。

18333fig0702-tn

 

Figure 4-1. 基于网页的 GitWeb 用户界面

 

如果想看看自己项目的效果,不妨用 Git 自带的一个命令,可以使用类似 lighttpd 或 webrick 这样轻量级的服务器启动一个临时进程。如果是在 Linux 主机上,通常都预装了 lighttpd ,可以到项目目录中键入 git instaweb 来启动。如果用的是 Mac ,Leopard 预装了 Ruby,所以 webrick应该是最好的选择。如果要用 lighttpd 以外的程序来启动 git instaweb,可以通过 --httpd 选项指定:

$ git instaweb --httpd=webrick
    [2009-02-21 10:02:21] INFO WEBrick 1.3.1
    [2009-02-21 10:02:21] INFO ruby 1.8.6 (2008-03-03) [universal-darwin9.0]

这会在 1234 端口开启一个 HTTPD 服务,随之在浏览器中显示该页,十分简单。关闭服务时,只需在原来的命令后面加上 --stop 选项就可以了:

$ git instaweb --httpd=webrick --stop

如果需要为团队或者某个开源项目长期运行 GitWeb,那么 CGI 脚本就要由正常的网页服务来运行。一些 Linux 发行版可以通过 apt 或 yum 安装一个叫做 gitweb 的软件包,不妨首先尝试一下。我们将快速介绍一下手动安装 GitWeb 的流程。首先,你需要 Git 的源码,其中带有 GitWeb,并能生成定制的 CGI 脚本:

$ git clone git://git.kernel.org/pub/scm/git/git.git
    $ cd git/
    $ make GITWEB_PROJECTROOT="/opt/git" \
    prefix=/usr gitweb/gitweb.cgi
    $ sudo cp -Rf gitweb /var/www/

注意,通过指定 GITWEB_PROJECTROOT 变量告诉编译命令 Git 仓库的位置。然后,设置 Apache 以 CGI 方式运行该脚本,添加一个 VirtualHost 配置:

<VirtualHost *:80>
    ServerName gitserver
    DocumentRoot /var/www/gitweb
    <Directory /var/www/gitweb>
    Options ExecCGI +FollowSymLinks +SymLinksIfOwnerMatch
    AllowOverride All
    order allow,deny
    Allow from all
    AddHandler cgi-script cgi
    DirectoryIndex gitweb.cgi
    </Directory>
    </VirtualHost>

不难想象,GitWeb 可以使用任何兼容 CGI 的网页服务来运行;如果偏向使用其他 web 服务器,配置也不会很麻烦。现在,通过 http://gitserver 就可以在线访问仓库了,在 http://git.server 上还可以通过 HTTP 克隆和获取仓库的内容。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

GitWeb 的相关文章

随机推荐

  • Python 教程之 Pandas(14)—— 使用 Pandas 进行数据分析

    Pandas是最流行的用于数据分析的 Python 库 它提供高度优化的性能 后端源代码完全用C或Python编写 我们可以通过以下方式分析 pandas 中的数据 1 Series 2 数据帧 Series Series 是 pandas
  • TypeScript总结 一【数组,联合,交叉类型】

    最近刚把ts学完 简单总结一下 ts的话 更强调类型 更加严谨 非原始类型 1 object 不包括基础数据类型 小写的 let obj object a 1 let obj object 1 2 Object 包括基础数据类型 大写的O
  • 基于ARM的自来水厂全自动恒压供水监控系统

    文末下载完整资料 随着越来越多的场合正向自动化无人职守迈进 尤其在安全 监控等领域 为了进一步降低成本 减少人力的投资 以及更集中 更方便的掌握现场情况 许多场合都采用了电子监控设备 如办公室 发电站 机场 海关等等领域 而这些电子设备的设
  • KeyEvent事件

    Java按键事件KeyEvent 按键事件可以利用键盘来控制和执行一些动作 或者从键盘上获取输入 只要按下 释放一个键或者在一个组件上敲击 就会触发按键事件 KeyEvent对象描述事件的特性 按下 放开 或者敲击一个键 和对应的值 jav
  • 解决xgboost安装问题:xgboost.core.XGBoostError: XGBoost Library (xgboost.dll) could not be loaded.

    问题描述 下载xgboost 使用pip安装后 在python中导入import xgboost出错 如下 xgboost core XGBoostError XGBoost Library xgboost dll could not be
  • 常用计算机英文缩写,常用计算机英文缩写含义

    常用计算机英文缩写含义 AAL ATM适配层 ATM Adaptation Layer ABR 可用比特率 Available Bit Rate ACR 衰减串扰比 ADPCM 自适应差分PCM ADSL 非对称数字环路 Asymmetri
  • 使用idea导入Maven项目教程

    选择导入存在的项目 指定Maven模型 修改项目设置 在使用tomcat启动项目时 可能没有servlet api包需要手动导入 如果出现jar包问题 在settings中勾选 然后重新下载jar包 在Settings设置中设置jdk信息
  • 关于遗传算法

    关于遗传算法 有很多袋鼠 它们降落到喜玛拉雅山脉的任意地方 这些袋鼠并不知道它们的任务是寻找珠穆朗玛峰 但每过几年 就在一些海拔高度较低的地方射杀一些袋鼠 于是 不断有袋鼠死于海拔较低的地方 而越是在海拔高的袋鼠越是能活得更久 也越有机会生
  • STM32 使用STM32F103控制无源蜂鸣器发声播放音乐

    使用STM32控制无源蜂鸣器发声播放音乐 注 学习STM32总结做的笔记 大神勿喷 有不足之处还望不吝赐教 本篇大部分转载而来 有侵权请联系作者 谢谢 原博客地址 https blog csdn net fanxp66 article de
  • Vue3+TypeScript+Router+Vuex+Ant-Design-Vue项目(四)—— vue-router 基本配置

    App vue 修改 App vue 文件
  • 总结伪类与伪元素

    熟悉前端的人都会听过css的伪类与伪元素 然而大多数的人都会将这两者混淆 本文从解析伪类与伪元素的含义出发 区分这两者的区别 并且列出大部分伪类与伪元素的具体用法 即使你有用过伪类与伪元素 但里面总有一两个你没见过的吧 1 伪类与伪元素 先
  • python每日一题

    输入一个字符串 将其中的小写字母转换成大写字母 并输出转换后的结果 s input 请输入一个字符串 result for c in s if c islower result c upper else result c print 转换后
  • 路由器工作原理

    一 路由器工作原理 1 什么是路由器 路由器的定义 是实现网络互连设备 工作在网络层 路由器的功能 路由和转发 1 可以决定数据包从来源端到目的端所经过的路由路径 host到host之间的最佳传输路径 这个过程称为路由 2 将路由器输入端的
  • [Android]【安卓】Service详解

    Android 安卓 Service详解 本篇博客已收录到我的安卓开发小结中 点击 安卓开发小结 参考资料 Android总结篇系列 Android Service 第一行代码 Android总结篇系列 Android Service Se
  • Qt中主线程如何不优雅地结束掉一个被卡死的子线程

    前提 这里所说的子线程其实是一个类 使用如下代码让其实例化对象运行在单独的线程中 例如是一个class A 如下代码中m thread是在 h文件里声明 其余代码是在A的构造函数中 QThread m thread this gt move
  • 支付宝小程序中网络请求 my.request({}) 的用法

    支付宝小程序网络请求官方文档 https docs alipay com mini api network Page data name 支付宝小程序 onLoad query 页面加载 在这里请求接口 console info Page
  • 2022年9月电子学会C语言等级考试试卷(四级)答案解析

    一 上升子序列 一个数字的序列b i 当b 1 lt b 2 lt lt b S的时候 我们称这个序列是上升的 对于给定的一个序列 a
  • visual studio 2022换背景遇到的问题

    如果要自定义背景图 则可以下载ClaudialIDE 1 在拓展 gt 点击拓展管理 gt 右上角搜索background gt 点击下载ClaudialIDE gt 加载完之后需要关闭vs界面进行下载 下载失败 弹出 由于出现以下错误 无
  • html ul纵向不换行,ul li列表并排 不换行css布局

    如何使用CSS样式让ul li列表标签布局并排显示不换行篇 默认ul li布局竖列显示 这里CSS5介绍使用两种使用css样式让li标签布局并排显示 一种使用css display 另外一种使用css float浮动 一 使用display
  • GitWeb

    本文转载至 http www gitchina org getting started pro git gitweb html 现在我们的项目已经有了可读可写和只读的连接方式 不过如果能有一个简单的 web 界面访问就更好了 Git 自带一