`

(转)GIT 搭建 Windows上的Git服务器_ Apache

阅读更多
在公司一直使用 SVN 作版本控制,不过 SVN 的 branch 是在过于灵活。我们所希望的只是一种简单的分支系统:各个分支能够完全独立开来,不会牵扯到复杂的 merge 操作。因此,决定搭建一个 Git 服务器。由于目前没有合适的 Linux 服务器,因此只能尝试在 Windows 上搭建。

在 Windows 上搭建 Git 服务器一般使用 SSL + putty + msysGit 完成。不过按照网上的做法始终不能成功。所以开始选择另外的一种搭建方法:基于 Apache 服务器搭建 Git 服务器。这样做的好处是免除了 SSH 在 Windows 上的配置,同时可以使用 HTTP(S) 协议访问版本库。经过一番尝试,终于实现了在 Windows 上搭建好 Apache + Git 服务器,现在将搭建方法记录于此。


第一步:安装 Git

由于 Git 官方没有提供 Windows 上的安装程序,我们只能使用第三方实现。好在还是有不错的选择,而且其实现也算是比较完美。我选择的是 msysGit,你可以从这里下载到最新版本。在本文写作时,最新版本是 1.7.6。下载完成后直接双击安装就可以。这里需要注意的是,网上有些文章声称,需要在安装时选择 Run git from the Windows Command prompt。对此持保留意见,因为不选择这一项也是可以的。不过为了谨慎起见,还是选择此项为好。

安装完毕后,开始菜单会多出 Git 一项,里面有 Git GUI 和 Git Bash,前者是图形界面,后者是命令行界面。msysGit 默认的安装路径是 C:\Program Files\Git。下面我们可以进入 C:\Program Files\Git\libexec\git-core 目录,双击运行 git-http-backend.exe 程序。这个程序的作用就是处理 HTTP 请求。不过,此时你应该得到一个错误:



这个错误是说缺少 libiconv-2.dll。该文件位于 C:\Program Files\Git\bin。我们可以将其从这里复制到 C:\Program Files\Git\libexec\git-core 即可。

第二步:安装 Apache 服务器

下一步,你应该安装 Apache 服务器。从这里可以找到安装文件(包含 OpenSSL)。本文写作时最新稳定版本是 2.2.21。正常安装之后,Apache 会自动启动,并且占据 80 端口。你可以根据需要修改监听端口。然后我们打开浏览器,进入 http://localhost。如果浏览器页面显示 It works! 说明我们的服务器已经正确安装,那么就可以进行下一步操作了。

第三步:配置 Apache 服务器

现在,我们的 Git 和 Apache 都已经安装成功,下面就是配置 Apache 服务器。

进入 Apache 安装目录下的 conf 目录,用记事本打开 httpd.conf 文件。首先,找到 <directory />,修改如下:

<directory />
Options FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</directory>
然后在 httpd.conf 文件末尾追加:

# Set this to the root folder containing your Git repositories.
# 指定 Git 版本库的位置
SetEnv GIT_PROJECT_ROOT C:/workspace
# Set this to export all projects by default (by default,
# git will only publish those repositories that contain a
# file named “git-daemon-export-ok”
# 该目录下的所有版本库都可以透过 HTTP(S) 的方式存取
SetEnv GIT_HTTP_EXPORT_ALL
# Route specific URLS matching this regular expression to the git http server.
# 令 Apache 把 Git 相关 URL 导向给 Git 的 http 处理程序
ScriptAliasMatch \
“(?x)^/(.*/(HEAD | \
info/refs | \
objects/(info/[^/]+ | \
[0-9a-f]{2}/[0-9a-f]{38} | \
pack/pack-[0-9a-f]{40}\.(pack|idx)) | \
git-(upload|receive)-pack))$” \
“C:/Program Files/Git/libexec/git-core/git-http-backend.exe/$1″

<Location />
AuthType Basic
AuthName “GIT Repository”
AuthUserFile “C:/Program Files/Git/htpasswd”
Require valid-user
</Location>
上面修改内容中,第一个指令设置 Git 的版本库位置;第二个指令表示,该目录下的所有版本库都可以通过 HTTP(S) 的方式存取;第三个指令则是让 Apache 把 Git 相关 URL 导向给 Git 的 HTTP 处理程序,也就是我们前面提到的 git-http-backend.exe。最后的 <Location /> 区段设定了虚拟根路径 “/” 的验证规则;C:/Program Files/Git/htpasswd 是账号密码文件,该文件可以在任何位置,也可以使任何名字,只要在这里指定即可。

完成上述修改之后,重启 Apache 服务。

如果你希望将来透过远端存取版本库时,一律使用 http://my-server/git/* 开头的 URL,则可将 ScriptAliasMatch 指令改为 “(?x)^/git/(.*/(HEAD | \ …….”

第四步:添加用户

下面,我们将向 htpassword 文件添加用户名和密码。这样,在我们提交版本是,Apache 服务器就可以根据这里我们指定的用户名和密码判断是否具有权限。

添加用户名和密码的操作应该使用 Apache 提供的 htpasswd 命令。使用命令提示符来到 Apache 安装目录下的 bin,输入命令:

htpasswd -cmb htpassword abc 123456
该命令执行后,会在当前目录下生成一个名为 htpassword 的文件,用户名为 abc,密码为 123456(加密的)。

htpasswd 命令还可以追加用户、修改用户密码、删除用户等,具体操作请查阅 htpasswd 使用手册。

第五步:测试

这里我们要建立一个测试库,以便查看我们的服务器是否能够正常运行。

我们使用 Git Bash,来到 C:/workspace 目录,运行如下命令:

git init –bare myapp.git
此时,会在 workspace 目录下建立一个空的版本库 myapp.git。然后我们运行

git clone http://localhost/myapp.git
此时,Git 会要求我们提供用户名和密码,之后就可以正常 clone。然后尝试修改文件,运行一下

git push origin master
在提供用户名和密码之后即可成功提交。

如果上面的命令都可以正常进行,则说明我们的服务器基本已经搭建完成。
分享到:
评论

相关推荐

    在公司搭建自己的git服务器.zip

    下面我们将详细探讨如何在公司内部搭建git服务器,并通过提供的文档和资源来深入理解git的相关知识。 首先,我们需要了解git的基本概念。Git是一款分布式版本控制系统,由Linux之父Linus Torvalds开发,用于管理...

    git基础(git服务器搭建+git教程+git廖雪峰)

    ### Git服务器搭建 1. **安装Git服务器**:在服务器上安装Git,通常使用`sudo apt-get install git`(Ubuntu/Debian)或`yum install git`(CentOS/RHEL)。 2. **初始化仓库**:在服务器上选择合适的位置创建空仓库...

    windows 搭建本地svn服务器

    要搭建Windows上的本地SVN服务器,我们主要会使用Apache HTTP Server作为Web服务器,并安装Subversion作为后端服务。以下是详细步骤: 1. **安装Subversion**: 首先,我们需要下载并安装Subversion。提供的文件...

    搭建git服务器方法

    ### 搭建Git服务器方法详解 随着版本控制系统在软件开发中的广泛应用,Git因其高效、灵活的特点成为首选工具之一。本文旨在为初学者提供一份全面的指南,介绍如何在CentOS 6.5环境下搭建一个基于HTTP基本认证的Git...

    搭建(基于http协议)git服务器的安装配置说明.docx编程资料

    在Eclipse中新建一个Java项目,并将其分享到Git服务器上。 2. **建立本地Git仓库** 通过Eclipse的Source Control功能将项目添加到本地的Git仓库中。 3. **提交更改** 对项目进行修改后,通过Eclipse中的Git...

    Linux下使用Apache搭建Git服务器

    近在学Linux,终于在Linux上用Apache搭建起了Git服务器,在此记录一下。  服务器:阿里云服务器  Linux版本:CentOS 6.5  Apache版本:Apache/2.2.15  Git版本:git 1.7.1  Git访问方式:基于http的基本...

    Windows平台搭建OpenACS测试环境_步骤

    在Windows平台上搭建OpenACS测试环境是一项技术性较强的工作,OpenACS是一个开源的网络应用程序开发框架,主要用于构建社区、教育和协作应用。以下是一份详细的步骤指南,帮助你完成这一过程。 1. **环境准备** - ...

    tomcat搭建git私服

    ### 基于WebDAV在Tomcat中搭建Git私有服务器 在现代软件开发过程中,版本控制系统(Version Control System, VCS)是必不可少的一部分,其中Git作为最流行的分布式版本控制工具之一,被广泛应用于各类项目中。对于...

    搭建(基于http协议)git服务器的安装配置说明.docx

    搭建基于HTTP协议的Git服务器是将Git仓库与Web服务器相结合,允许用户通过HTTP协议来克隆、推送和拉取代码。在这个过程中,我们将使用Apache作为Web服务器,Git作为版本控制系统,Gitweb作为Web接口,而身份验证则...

    2021-2022年精品资料搭建基于http协议git服务器的安装配置说明.docx

    搭建基于HTTP协议的Git服务器是将Git仓库托管在服务器上并允许通过HTTP协议进行操作的过程。这个过程在很多情况下适用于不支持SSH协议或者为了安全性和管理便利性而选择HTTP方式的场景。以下是对该文档中描述的步骤...

    git服务哭搭建

    本教程将详述如何在Ubuntu系统上搭建Git服务器,包括安装与配置多个组件,如X11VNC远程管理、OpenSSH服务器、Git守护进程(Git Daemon)、Gitweb以及Java。 首先,我们需要【安装Ubuntu系统】,这是一个基于Debian...

    git服务搭建全过程

    #### 一、对外GIT服务器搭建 对外GIT服务器的搭建主要涉及以下步骤: 1. **选择并配置Git与Gerrit**: - **Git与Gerrit版本**: 选用Git结合Gerrit 2.16.7进行配置。 - **访问地址**: 通过`...

    简单搭建WEB服务器 简单搭建WEB服务器 简单搭建WEB服务器

    3. IIS:Windows操作系统内置的Web服务器,适用于Windows环境。 4. Python的http.server模块:对于快速测试和小型项目,Python自带的http.server模块是一个简便的选择。 三、简单搭建Web服务器的步骤 1. 安装Web...

    【内网Git-Server(基于smart http方式)部署】.pdf

    本文主要介绍在内网环境...通过这些步骤,可以成功搭建一个支持基本HTTP验证的内网Git服务器,为公司内部的开发人员提供代码托管服务。注意在实际操作中,所有的配置文件修改都需要谨慎处理,以确保系统的安全与稳定。

    Apache本地服务器软件

    例如,通过集成Git,开发者可以轻松地管理代码版本,同时在Apache服务器上实时预览更改。 总的来说,Apache本地服务器软件为开发者提供了一个强大且灵活的平台,用于测试和调试网站。其开源特性、丰富的模块支持...

    git 学习资料大全,pro git 资料 gitweb资料实战

    在 Git 实战中,了解如何在服务器上搭建 Git 服务是非常重要的一步。这通常包括以下步骤: 1. 安装 Git:在服务器上安装 Git 环境,确保所有必要的依赖都已就绪。 2. 配置 Git 用户:创建一个专门用于 Git 服务的...

    虚拟机ubuntu14.04配置git及gitweb服务器.docx

    3. **搭建Git服务器** 首先,确保已安装`open-ssh-server`和`openssh-client`。然后,切换到超级用户,使用`ssh-keygen -t rsa`生成SSH密钥对,存储在`~/.ssh`目录下。无需为密钥设置密码,只需一路回车即可。这样...

    持续集成环境搭建——maven、git、jenkins、tomcat

    接下来,我们可以使用git进行版本控制,jenkins进行持续集成,而tomcat作为应用服务器部署我们的Web应用程序。这个集成环境有助于团队高效协作,确保代码质量和稳定性。在实际工作中,根据项目需求,可能还需要配置...

    Gerrit 服务器搭建_Gerrit_

    在开始搭建前,你需要一台运行 Linux 操作系统的服务器(例如 Ubuntu 或 CentOS),并确保该服务器已安装了 Git 和 Java 运行环境。Java 是 Gerrit 运行所必需的,而 Git 则用于仓库管理和版本控制。 三、安装 ...

    windows2003下架设svn服务器

    以下是详细步骤,帮助你理解如何在Windows 2003上搭建SVN服务器。 **安装Apache服务器** 首先,你需要一个Web服务器来托管SVN服务。Apache是最常用的Web服务器之一,它支持SVN通过其模块mod_dav_svn。下载并安装...

Global site tag (gtag.js) - Google Analytics