`
cryolite
  • 浏览: 581502 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Mac OS X下自建git服务器

阅读更多
git有4种协议方式建git服务器,分别是本地协议、SSH协议、git协议和http协议。
Mac OS X自带了apache web服务器,使用很方便,但是与其它几种方式相比速度很慢,一般以http协议的方式提供git库的只读访问。
对于日常工作提交,应以git方式为好,因为速度很快。

1。开启web服务器
1.1
打开“系统偏好设置”的“共享”,勾上“Web共享”即可,可以用浏览器访问http://localhost/试试,btw:
http://localhost/~[当前登陆用户]
是登陆用户的主页

1.2 这种方式使用了WebDAV上传/修改/删除服务器上的文件,缺省情况下WebDAV是不能增删改的,所以只能pull不能push,如果git push会出现问题:
error: Cannot access URL http://localhost/<my_project>.git, return code 22

或者
error: cannot lock existing info/refs
fatal: git-http-push failed

多是WebDAV没有配制好的问题

详细情况可参考这里:HOWTO Setup WebDAV on Mac OS X Leopard
会有安全隐患,不熟的没有必要还是不要弄了。

2。安装git
去git的下载主页找最新的安装dmg下载安装,缺省安装路径在 /usr/local/git目录下

3。初始化工程repository
cd ~/Document/workspace/<my project>
git init
git add *
git commit -m "initial import"

在web服务器目录下创建新的bare repository
git clone --bare -l /Users/woo/Documents/workspace/<my project> /Library/WebServer/Documents/<my_project>.git
cd /Library/WebServer/Documents/<my_project>.git
git update-server-info


好了,现在可以用http访问git库了:
cd  /tmp
git clone http://localhost/<my_project>.git


4. http访问比较慢,一般只对外提供只读访问用,日常代码提交可以通过git协议进行:
cd /Library/WebServer/Documents/<my_project>.git
touch git-daemon-export-ok

然后启动git daemon:
sudo /usr/local/git/libexec/git-core/git-daemon --base-path=/Library/WebServer/Documents/ --syslog --verbose --pid-file=/var/run/git-daemon.pid --user=_www --group=_www --detach --enable=upload-pack --enable=upload-archive --enable=receive-pack


base-path参数指出web服务器的Documents目录为git服务器基础目录,git-daemon会扫描该目录下所有尾缀为.git的目录,如果这些目录下有git-daemon-export-ok文件,则将此目录作为git协议的输出repository,用户和用户组都设为_www,与web服务器相同。

试试是否成功:
cd /tmp
git clone git://localhost/<my_project>.git


修改源代码后提交:
git push
如果出现如下错误:
pack-objects died of signal 13
error failed to push some refs   

或者
error: unpack failed: unpack-objects abnormal exit
To git://xxx.yyy.local/<my_project>.git
! [remote rejected] master -> master (n/a (unpacker error))
error: failed to push some refs to 'git://xxx.yyy.local/<my_project>.git'

这类错误一般是git服务器端的问题,检查系统日志会发现:
Mar  7 22:11:50 xxx.yyy git-daemon[6334]: error: insufficient permission for adding an object to repository database ./objects

这是因为git-daemon命令启动时--user=_www --group=_www这两个参数制定的用户和用户组权限与服务器上/Library/WebServer/Documents的用户和用户组权限不一致所致。办法有两个:
a。将git服务器相关文件权限修改成www:www用户和用户组即可
sudo chown -R www:www /Library/WebServer/Documents
b。修改git-daemon启动参数(--user=www --group=www),使其与git服务器上repository文件的用户和权限一致,

git push如果出现错误
errno=Connection refused
fatal: The remote end hung up unexpectedly

这是因为git-daemon命令缺少这几个参数:
--enable=upload-pack --enable=upload-archive --enable=receive-pack


综上所述,http方式配制起来很麻烦,比较适合pull,虽然有点慢,采用git协议方式比较安全方便点,而且比较下可以发现git方式比http快的太多了。


参考:
Pro Git 2009
setting up git server fast macos x
Setting up a public (bare) repository with git


分享到:
评论

相关推荐

    WindowsXP下搭建Git服务器 1

    在Windows XP上搭建Git服务器,主要是为了让其他开发者能够通过SSH协议访问和协作代码仓库。...这个过程对于那些在Windows环境中工作的开发者来说是非常有价值的,因为它提供了与Linux或Mac OS X上类似的Git服务功能。

    Mac.OS.X.for.Unix.Geeks

    对于开发人员,书中还会涉及编译环境的搭建,如GCC、Makefile的使用,以及Git版本控制系统在Mac OS X下的应用。 系统管理和自动化是Unix高手常常涉及的领域,《Mac.OS.X.for.Unix.Geeks》会介绍launchd服务,它是...

    Mac OS X Server 安装与应用.docx

    Mac OS X Server是苹果公司为OS X和iOS设备设计的一款高效能服务器软件,它提供了丰富的功能,使得非专业人员也能轻松管理和配置服务器环境。在最新版本中,Mac OS X Server支持Mavericks操作系统,简化了服务器的...

    Gitblit搭建及Git协作开发流程参考

    Gitblit是开源的Git服务器管理工具,支持Windows、Linux和Mac OS平台。搭建Gitblit服务器需要下载最新的Gitblit Windows版本,然后解压到指定目录,创建一个目录来存放代码库,并修改data目录下的gitblit.properties...

    Mac OS X 下安装Nginx问题详解.docx

    在Mac OS X操作系统中安装和配置Nginx服务器可能会遇到一些特定的问题,本文将详细解析在该环境下安装Nginx时可能遇到的挑战及其解决方案。 首先,安装Nginx最常用的方法之一是通过Homebrew包管理器。输入`brew ...

    git-2.23.0-intel-universal-mavericks.dmg.zip下载

    "intel-universal"可能指的是这个版本是为Intel处理器优化的,适合在苹果Mac OS操作系统上运行,而"Mavericks"则是苹果OS X操作系统的版本之一,正式名称为OS X Mavericks,发布于2013年。 Mac OS版的Git安装包对于...

    Gitblit服务器-1.8.0代码版本服务器.zip

    1. **易于部署**:Gitblit可以轻松地在Windows、Linux或Mac OS X上运行,只需要Java环境支持。其简洁的配置文件使得设置和管理变得直观。 2. **Web界面**:Gitblit提供了一个现代且用户友好的Web界面,允许用户浏览...

    Xit:Mac OS X Git GUI

    **Xit:Mac OS X Git GUI** Xit是一款专为Mac OS X设计的Git图形用户界面(GUI)工具,它提供了简洁、直观的界面来帮助用户管理他们的Git版本控制系统。Git是目前最流行的分布式版本控制系统,广泛应用于软件开发中...

    gitblit-1.9.3.zip

    Gitblit是一款开源的、专为Git版本控制系统设计的轻量级服务器软件,适用于Windows、Linux和Mac OS X等操作系统。标题"gitblit-1.9.3.zip"表明这是一个Gitblit的1.9.3版本的压缩包文件,通常包含用于在Windows环境中...

    Git权威指南PDF完整版

    Git权威指南 目 录 前 言 第1篇 初识Git 第1章 版本控制的前世和今生/ 2 1.1 黑暗的史前时代/ 2 1.2 CVS—开启版本控制大爆发/ 5 1.3 SVN—集中式版本控制集大成者/ 7 ...34.1.2 Mac OS X 下 cvs2svn 的...

    git-2.15.0-intel

    这意味着即使你的Mac运行的是较旧的OS X版本,也可以安装并使用此Git版本。 4. **IDE集成**: - 标签中提到了`idea`,这可能指的是JetBrains的IntelliJ IDEA,一个流行的集成开发环境(IDE)。Git可以直接与IDE...

    Git(2.16.2)最新安装(包涵安装说明)

    "git-2.16.2-intel-universal-mavericks.dmg"是一个适用于Mac OS X Maverick操作系统的Git安装镜像文件。用户需要双击该文件,通过Apple的Disk Utility应用程序来挂载和安装。安装过程中,用户通常会被引导至一个...

    PRO GIT.pdf

    ### Git服务器部署 对于团队协作,通常需要在服务器上部署Git。这涉及到选择合适的网络协议(如SSH或HTTPS)、配置服务器环境、设置权限访问等步骤。同时,Git提供了一些辅助工具,如Git Web、Gitosis、Gitolite等...

    git-2.15.2最新版本(WINDOWS MAC).rar

    而"__MACOSX"通常表示与Mac OS相关的隐藏文件或文件夹,可能是Mac版Git的组成部分。 Git的核心特性包括: 1. 分布式版本控制:每个开发者的本地仓库都是完整的版本库,可以离线工作,无需始终连接到中央服务器。 2...

    git使用教程-史上最全,最简洁的使用教程

    - **GitHub for Mac**(OS X, 免费) - **GitBox**(OS X, App Store) - **Git配置**: - 显示颜色输出: `git config color.ui true` - 历史记录每行显示: `git config format.pretty oneline` - **交互式暂存文件...

    create_git_warehouse

    Git可以在Windows、Mac OS X以及Linux等操作系统上运行。安装完成后,可以通过命令行工具(如Git Bash)与Git进行交互。 创建一个新的Git仓库有几种方法: 1. **初始化空仓库**:在项目目录下,你可以通过运行`git...

    Git 廖雪峰教程

    - **2.2 Mac OS 安装** - 可以使用 Homebrew 安装工具来安装 Git。 - 或者安装 Xcode 后,在偏好设置中找到 "Command Line Tools" 并点击 "Install" 按钮安装 Git。 - **2.3 Windows 安装** - 直接从官方网站下载...

Global site tag (gtag.js) - Google Analytics