`
v5qqbrowser
  • 浏览: 358401 次
文章分类
社区版块
存档分类
最新评论

快速架设一个简单的基于 SSH 的 Git 服务

 
阅读更多

一直使用在 github 上托管的 git 服务,虽然 github 的代码托管,协作,wiki 功能,以及 bug tracking 功能都非常好用。但是随着项目不断增多,github 最便宜的每月 7 美元 5 个 private 项目的容量很快不够用了。想想反正自己有一台 Linode 的 CentOS 云服务器,于是诞生了自己架一套 git service 的念头,就不花钱升级 github 了。

根据 git 网站 Pro Git 书中的说明,选择 SSH 方式简单架设了一套。因为主要是自己使用,不存在提供给别人公共访问的要求,而且基本每台 Linux 服务器都可以 SSH, 所以选择了 SSH 方式。Pro Git 中对 git 可以采用的几种协议的优缺点以及适用场景都有详细介绍。下面是使用 SSH 方式的基本步骤:

有关 git 使用 SSH 的基本知识

要通过 SSH 克隆一个 Git repository,我们可以像下面这样指定 ssh:// URL :

$ git clone ssh://user@server:project.git

或者我们也可以不指定一个协议 — 如果没有显式指定的话 Git 假设是 SSH:

$ git clone user@server:project.git

我们也可以不指定一个用户,这样的话 Git 会假设是当前登录的用户(和使用 SSH 命令的情形类似)。

第一步,放一个裸的 Repository 到服务器上

假设 my_project 是我们在本地的一个 git Repository 项目目录,通过使用 --bare 参数生成只包含 git 信息的裸的项目拷贝

$ git clone --bare my_project my_project.git

第二步,通过 scp 命令把 git 拷贝存储到服务器

现在我们已经有了一个裸的 Repository 的拷贝,下一步就是把它放到服务器上。假设我们已经有了一个名为 git.example.com 的服务器,并且已经可以通过 SSH 进行访问。假设我们也在服务器的 /opt 目录下建了一个名为 git 目录专门用来存放 git 项目信息。我们就可以像下面这样通过拷贝一个裸的 Repository 到服务器上来设置一个新的 Repository:

$ scp -r my_project.git user@git.example.com:/opt/git

需要注意的是,如果我们给 SSH 设置了不同的访问端口(不是默认的 22),比如说是8080,那么我们需要用 -P 8080 参数来指定 SSH 使用的端口。

$ scp -r -P 8080 my_project.git user@git.example.com:/opt/git

第三步,使用服务器上的 git

这时候,其他也具有到同一台服务器 SSH 访问权限的用户就可以通过运行下面的命令来克隆我们的项目啦,要求至少对 /opt/git 目录具有读取权限:

$ git clone user@git.example.com:/opt/git/my_project.git

这里同样要注意 SSH 端口的问题,如果不是默认的 SSH 端口,要像下面这样运行命令(注意没有省略 ssh://,以及 8080 端口号放置的位置)

$ git clone ssh://user@git.example.com:8080/opt/git/my_project.git

剩下的就是和通常 git 的用法一样了,git pull git push

例如:
$ git pull ssh://user@git.example.com:8080/opt/git/my_project.git

希望通过 SSH 之外的其他方式来假设 git,或者像提供 git 的公共访问或是希望提供 Web 页面的,更多信息请参考 git 官方网站上的文章:Git on the server

原文地址:http://www.tfan.org/build-a-simple-ssh-git-service-in-five-minutes/

分享到:
评论

相关推荐

    gitosis git服务器架设软件

    Gitosis则是方便通过Git与ssh架设中央服务器的软件。这篇文章的安装流程写得很明了,但使用中还是遇到了些许问题,本文算是该流程的补充。如果打算通过Gitosis架设服务器通过本文或许可以少走不少弯路。 一、架设...

    Git中文学习手册 Git入门

    1 起步 1 1 关于版本控制 1 2 Git 简史 1 3 Git 基础 1 4 安装 Git 1 5 初次运行 Git 前的配置 ...4 10 Git 托管服务 4 11 小结 5 分布式 Git 6 Git 工具 7 自定义 Git 8 Git 与其他系统 9 Git 内部原理

    Git权威指南PDF完整版

    4.2 思考:为什么工作区根目录下有一个 .git 目录/ 60 4.3 思考:git config 命令的各参数有何区别/ 63 4.4 思考:是谁完成的提交/ 65 4.5 思考:随意设置提交者姓名,是否太不安全/ 67 4.6 思考:命令别名是干什么...

    以cygwin和gitolite在WinServer2008上安装git服务

    这是一个非常简单而且灵活的方式。如果不涉及开发者对项目访问权限的管理问题,这是一个最经济高效的解决方案,具体安装过程参考“安装copssh Git Sever的过程.doc”和“安装copssh Git Client的过程.doc”。 二 ...

    GIT服务器 Gitolite.zip

    GIT服务器 Gitolite ,Git是非常著名的分布式版本控制系统。gitolite 则是方便通过 Git 与 ssh 架设中央服...

    Git权威指南

    第5篇介绍了git服务器的架设,首先讲解了http协议、git协议、ssh协议的使用,然后讲解了gitolite、gitosis、gerrit等服务器的架设方法,最后还讲解了git版本库的托管。第6篇介绍了版本库的迁移,包括如何从cvs、svn...

    Git学习手册

    4 10 Git 托管服务 4 11 小结 5 分布式 Git 6 Git 工具 7 自定义 Git 8 Git 与其他系统 9 Git 内部原理 ">1 起步 1 1 关于版本控制 1 2 Git 简史 1 3 Git 基础 1 4 安装 Git 1 5 初次运行 Git 前的...

    Git权威指南【样张】

    第5篇介绍了git服务器的架设,首先讲解了http协议、git协议、ssh协议的使用,然后讲解了gitolite、gitosis、gerrit等服务器的架设方法,最后还讲解了git版本库的托管。第6篇介绍了版本库的迁移,包括如何从cvs、svn...

    使用Gitolite搭建轻量级的Git服务器

    在Git服务管理工具这个领域,主要有三种流行的方案,它们分别是:1.Gitosis-轻量级,开源项目,使用SSH公钥认证,只能做到库级的权限控制。目前项目已经停止开发,不再维护。2.Gitolite-轻量级,开源项目,使用SSH...

    GIT中文资源

    2.4.1 修改最后一次提交 . . . . . . . . . . . . . . . . . . . . . . 29 2.4.2 取消已经暂存的文件 . . . . . . . . . . . . . . . . . . . . . 30 2.4.3 取消对文件的修改 . . . . . . . . . . . . . . . . . . ....

Global site tag (gtag.js) - Google Analytics